久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

[Python爬蟲]使用requests和fiddler模擬登陸

 宅必備 2022-05-30 發(fā)布于江蘇

好久沒更新Python相關(guān)的內(nèi)容了,,這個專題主要說的是Python在爬蟲方面的應(yīng)用,包括爬取和處理部分

上節(jié)我們說了如何操作瀏覽器自動訂購12306火車票

[Python爬蟲]使用Python爬取靜態(tài)網(wǎng)頁-斗魚直播

[Python爬蟲]使用Python爬取動態(tài)網(wǎng)頁-豆瓣電影(JSON)

[Python爬蟲]使用Python爬取動態(tài)網(wǎng)頁-騰訊動漫(Selenium)

[Python爬蟲]使用Selenium操作瀏覽器訂購火車票

這節(jié)內(nèi)容為如何利用fiddler分析登陸過程并使用requests進行登陸,,之后領(lǐng)取下載豆


開發(fā)環(huán)境

操作系統(tǒng):windows 10

Python版本 :3.6

爬取網(wǎng)頁模塊:requests

分析網(wǎng)頁工具:BeautifulSoup4,fiddler4


關(guān)于requests

requests是一個第三方庫,,可以用來模擬瀏覽器請求,如get,post

它也有Session功能,,可以保持會話信息,,如cookie等,這個可以讓我們用來進行登陸后的操作

具體請參加官網(wǎng):

http://docs./en/master/

關(guān)于fiddler4

fiddler4 是一個網(wǎng)頁分析的工具,,和自帶的開發(fā)者工具一樣,,不過其功能更為強大

我們可以通過官網(wǎng)免費下載并使用

官方網(wǎng)址

https://www./download/fiddler

詳細教程查看如下網(wǎng)站

http://docs./fiddler/configure-fiddler/tasks/configurefiddler

模塊安裝

lxml為解析網(wǎng)頁所必需

pip3 install requests

pip3 install BeautifulSoup4

1.分析過程

1.1 登陸51cto并進行登陸

請保持fiddle4 全程開啟狀態(tài)

1.2 使用Fiddler4 查找功能查找登陸頁面

也可以直接使用快捷鍵Ctrl+F,我們這里查找用戶名bsbforever

注意這里需要勾選decode compressed content

之后可以看到界面左邊連接黃色高亮

1.3 查看請求網(wǎng)頁和header

1.4 查看POST請求參數(shù)

接下來我們雙擊該頁面從右側(cè)的WebForms查看POST參數(shù)

也可以查看raw標簽

從上面我們可以看出提交的信息有:

  • _csrf

  • username

  • password

  • rememberme

  • login_button

其他都很好知道其含義,,只有第一個我們不確定其含義

我們接下來重復(fù)登陸操作,,可以看到每次csrf值是不一樣的

這時我們需要找到該值是如何產(chǎn)生的

1.5 查看csrf值

這里我們?nèi)匀皇褂盟阉鞴δ埽覀兯阉鱟srf的值

這時我們可以看到左側(cè)有2處標黃,,我們查看另外個頁面的響應(yīng)

可以看到該csrf值存在于為登陸前的頁面中

這時我們可以提取該值

1.6 POST模擬登陸

接下來我們構(gòu)造header和post data 使用requests.post進行登陸

這時使用Session方法保持會話信息

1.7 登陸后領(lǐng)取下載豆

這里根據(jù)抓取到的頁面進行POST請求

2. 登陸流程圖

3. 代碼介紹

3.1 import相關(guān)的模塊

import requests

from bs4 import BeautifulSoup

3.2 新建requests會話

后續(xù)都使用s變量進行請求

s=requests.Session()

3.3  get首頁獲取csrf值

content=s.get('http://home.51cto.com/home').content

soup = BeautifulSoup(content,"lxml")

token=soup.find('meta',attrs = {'name' : 'csrf-token'})['content']

3.4 構(gòu)造header和data

3.5 post 登陸頁面

s.post(url=login_url,headers=header,data=data)

3.6 判斷是否登陸成功

result=s.get('http://home.51cto.com/home').text

if 'bsbforever' in result:

    print ('恭喜,登陸51cto成功,領(lǐng)取下載豆中..')

3.7.領(lǐng)取下載豆

 download=s.post('http://down.51cto.com/download.php?do=getfreecredits&t=0.8367867217711695').text

4.執(zhí)行結(jié)果:

5.注意事項:

  1. fiddler請保持全程開啟

  2. 請使用Session方法保持登陸狀態(tài)

  3. 本腳本僅用于學(xué)習(xí)用途

6.源碼位置

    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多