繁体   English   中英

403禁止使用Urllib2 [Python]

[英]403 Forbidden using Urllib2 [Python]

url = 'https://www.instagram.com/accounts/login/ajax/'
values = {'username' : 'User',
          'password' : 'Pass'}

#'User-agent', ''
data = urllib.urlencode(values)
req = urllib2.Request(url, data,headers={'User-Agent' : "Mozilla/5.0"}) 
con = urllib2.urlopen( req )
the_page = response.read()

有没有人对此有任何想法? 我一直收到错误“403禁止”。 它可能的instagram有一些东西不允许我通过python连接(我不想通过他们的API连接)。 到底发生了什么,有没有人有任何想法?

谢谢!

编辑:添加更多信息。

我得到的错误就是这个

This page could not be loaded. If you have cookies disabled in your browser, or you are browsing in Private Mode, please try enabling cookies or turning off Private Mode, and then retrying your action.

我编辑了我的代码,但仍然遇到了这个错误。

jar = cookielib.FileCookieJar("cookies")
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(jar))
print len(jar) #prints 0
opener.addheaders = [('User-agent','Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36')]
result = opener.open('https://www.instagram.com')
print result.getcode(), len(jar) #prints 200 and 2

url = 'https://www.instagram.com/accounts/login/ajax/'
values = {'username' : 'username',
          'password' : 'password'}

data = urllib.urlencode(values)

response = opener.open(url, data)
print response.getcode()

两个重要的事情,对于初学者:

  • 确保你保持合法的一面 根据Instagram的使用条款

我们禁止通过自动方式抓取,抓取,缓存或以其他方式访问服务上的任何内容,包括但不限于用户个人资料和照片(可能是标准搜索引擎协议或搜索引擎使用Instagram技术的结果)表示同意)。

您不得通过未经授权的方式使用服务创建帐户,包括但不限于使用自动设备,脚本,机器人,蜘蛛,爬虫或刮刀。

除此之外,Instagram本身是javascript很重,你可能会发现使用urllib2requests很难。 如果出于某种原因,您无法使用API​​,那么您将通过selenium查看浏览器自动化。 请注意,您也可以自动化像PhantomJS这样的无头浏览器。 以下是登录的示例代码:

from selenium import webdriver

USERNAME = "username"
PASSWORD = "password"

driver = webdriver.PhantomJS()
driver.get("https://www.instagram.com")

driver.find_element_by_name("username").send_keys(USERNAME)
driver.find_element_by_name("password").send_keys(PASSWORD)

driver.find_element_by_xpath("//button[. = 'Log in']").click()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM