python 面對post分頁爬蟲

2022-02-23 23:13:20 字數 1302 閱讀 4119

分享一則對於網抓中面對post請求訪問的頁面或者在分頁過程中需要post請求才可以訪問的內容!

post請求狀態碼和get請求的狀態碼一致,但是在引數中我們可以看到表單資料有很多的引數:

其中的__viewstate是必須要傳的引數,而這個引數是在原始碼中能獲取到的,這個__viewstate是asp.net中特有的,所以只有在訪問asp.net的**的時候這個引數是必須傳的,其他的**,只要有引數變化的表單資料就需要傳到post請求中!

我們在轉頁的過程中會看到類似於這樣的

表單,那後面的數字就是我們轉頁後的頁碼!所以我們的這個引數也要傳,獲取轉頁的頁碼的總數,同樣可以在原始碼中獲取,如果只顯示了1234頁,那就需要計算你需要的內容有多少個,每一頁的內容個數,做乙個取餘演算法就可以算出來了!

現在定義乙個post_data:

1 post_data=
這是我自定義的post引數,page_num代表著分頁的頁碼。

__viewstate是在原始碼中,這裡分享的是xpath方法:

1 a = doc.xpath('

//input[@id="__viewstate"]')

2if len(a) >0:

3 post_data['

__viewstate

'] = a[0].get('

value

')

使用beautifulsoup就是:

1 soup = beautifulsoup(h,"

html.parser")

2 a = soup.find('

input

',id='

__viewstate')

3ifa:4 post_data['

__viewstate

'] = a['

value

']

獲取到重要的表單資料後,我們就只需要傳參訪問網頁原始碼了!

1 r2 = requests.post(url,data=post_data,headers=headers,timeout=20)

2 ht2 = r2.content #

這裡就是訪問的網頁原始碼!

xpath的解析**:  doc2 = html.document_fromstring(網頁原始碼)

正則解析 分頁爬取

usr bin python import requests import re import os if name main headers 建立乙個資料夾,儲存所有 if not os.path.exists qiutulibs2 os.mkdir qiutulibs2 設定乙個通用的url模板...

爬蟲分頁爬取獵聘 15python爬取百度貼吧

不要問我這個十一去哪兒旅遊了,我還在家沒日沒夜的碼 這次我們用urllib爬取頁面,再用beautifulsoup提取有用資訊,最後用xlsxwriter把獲取的資訊 寫入到excel表 python 基礎 xlsxwriter用來寫入excel檔案的 urllib python內建爬蟲工具 bea...

爬蟲學習(四) post請求爬取

import urllib.request import urllib.parse post url word input 請輸入要翻譯的內容 data 對表單資料進行處理時,先轉換成為字串,在轉換成為位元組 只轉化成為字串形式 data1 urllib.parse.urlencode data p...