溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

詳解python 模擬豆瓣登錄(豆瓣6.0)

發(fā)布時間:2020-09-10 14:53:06 來源:腳本之家 閱讀:138 作者:噼里巴啦 欄目:開發(fā)技術(shù)

最近在學(xué)習(xí)python爬蟲,看到網(wǎng)上有很多關(guān)于模擬豆瓣登錄的例子,隨意找了一個試了下,發(fā)現(xiàn)不能運行,對比了一下代碼和豆瓣網(wǎng)站,發(fā)現(xiàn)原來是豆瓣網(wǎng)站做了修改,增加了反爬措施。

首先看下要模擬登錄的網(wǎng)站:

詳解python 模擬豆瓣登錄(豆瓣6.0)

打開開發(fā)者模式:

詳解python 模擬豆瓣登錄(豆瓣6.0)

在賬號和密碼隨意填入數(shù)據(jù):

詳解python 模擬豆瓣登錄(豆瓣6.0)

發(fā)現(xiàn)會發(fā)送一個post請求:

詳解python 模擬豆瓣登錄(豆瓣6.0)

ur是:https://accounts.douban.com/j/mobile/login/basic

數(shù)據(jù)格式是:

詳解python 模擬豆瓣登錄(豆瓣6.0)

于是可以來編寫代碼:

import requests

def main():
  url_basic = 'https://accounts.douban.com/j/mobile/login/basic'
  url = 'https://www.douban.com/'
  ua_headers = { "User-Agent":'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)'}
  data = {
    'ck': '',
    'name': '自己的賬號',
    'password': '自己的密碼',
    'remember': 'false',
    'ticket': ''
  }

  s = requests.session()
  s.post(url=url_basic, headers=ua_headers, data=data)
  response = s.get(url=url, headers=ua_headers)
  with open('douban.html' , 'wb') as f:
    f.write(response.content)

if __name__ == '__main__':
  main()

第一步:

創(chuàng)建 s = requests.session()

作用是跨請求保持參數(shù),也就是說s這個session對象所發(fā)出的所有請求之間會保持cookies

第二步:

用創(chuàng)建好的session對象攜帶賬號,密碼去發(fā)送post請求。

由于改版后的豆瓣返回的是一個josn數(shù)據(jù),而不是像以前一樣重定向,所以需要我們來重定向。

第三步:

攜帶登錄成功保存的cookie去訪問首頁,就會得到你自己的首頁.

最后得到個人首頁:

詳解python 模擬豆瓣登錄(豆瓣6.0)

以上所述是小編給大家介紹的python模擬豆瓣登錄詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI