日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

[python]利用urllib+urllib2解決爬蟲分頁翻頁問題

 Levy_X 2017-10-05

最近由于公司的自動化測試工具需要將測試結(jié)果導出到excel中,奈何沒有學SSH,導致無法在工具本身中添加(工具是開發(fā)做的),故轉(zhuǎn)而使用python爬蟲來做,開發(fā)過程中遇到了一個問題:

  由于測試結(jié)果太多,需要翻頁,而翻頁時網(wǎng)址沒有變化,這就導致抓取的時候沒法依照網(wǎng)址去爬,遂去網(wǎng)上查找解決方法,最后找到利用urllib2提交post的方法來解決。

解決過程:

  

網(wǎng)址不變,而如果是用selenium的話,我又覺得太慢,畢竟selenium是用來做驗收測試的,不是用來爬數(shù)據(jù)的。言歸正傳,利用urllib2提交post的方法來獲取翻頁數(shù)據(jù)的話,首先的找到網(wǎng)頁對應的post,首先我找到了這個:

{'topage':'3'}

 

和這個:

{'pageNow':'3'}


(后者是正確的)

這需要大家自己去網(wǎng)頁里找規(guī)律,不一定被放到了哪個位置,我因為工具是公司開發(fā)寫的,我在他的頁面代碼里找到了如下這段:

所以確定是{'pageNow':'3'}是對的。

 

既然找到post的鍵值,那接下來的事就簡單了:

復制代碼
 1  2 url = 網(wǎng)絡地址
 3 #需要提交給表單鍵值對
 4 query = {'pageNow':'3'}
 5 
 6 #urllib.urlencode(query[, doseq]):將dict或者包含兩個元素的元組列表轉(zhuǎn)換成url參
 7 #數(shù)。例如 字典{'name': 'dark-bull', 'age': 200}將被轉(zhuǎn)換為"name=dark-bull&
 8 #age=200"
 9 date = urllib.urlencode(query)
10 #向服務器端發(fā)送請求
11 post = urllib2.Request(url,date)
12 #接收服務端返回的內(nèi)容
13 response  = urllib2.urlopen(request)
14 #轉(zhuǎn)化為頁面代碼
15 page = response.read()
16 
17 
18 print page
復制代碼

以上,控制臺上顯示出來的就是第三頁的代碼,這時大家就可以用正則去匹配自己需要的東西了\(^o^)/~

    本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多