簡體   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