最近因爲公司的自動化測試工具須要將測試結果導出到excel中,奈何沒有學SSH,致使沒法在工具自己中添加(工具是開發作的),故轉而使用python爬蟲來作,開發過程當中遇到了一個問題:python
因爲測試結果太多,須要翻頁,而翻頁時網址沒有變化,這就致使抓取的時候無法依照網址去爬,遂去網上查找解決方法,最後找到利用urllib2提交post的方法來解決。服務器
解決過程:網絡
網址不變,而若是是用selenium的話,我又以爲太慢,畢竟selenium是用來作驗收測試的,不是用來爬數據的。言歸正傳,利用urllib2提交post的方法來獲取翻頁數據的話,首先的找到網頁對應的post,首先我找到了這個:python爬蟲
{'topage':'3'}
和這個:工具
{'pageNow':'3'}
(後者是正確的)post
這須要你們本身去網頁裏找規律,不必定被放到了哪一個位置,我由於工具是公司開發寫的,我在他的頁面代碼裏找到了以下這段:測試
因此肯定是{'pageNow':'3'}是對的。url
既然找到post的鍵值,那接下來的事就簡單了:spa
1 2 url = 網絡地址 3 #須要提交給表單鍵值對 4 query = {'pageNow':'3'} 5 6 #urllib.urlencode(query[, doseq]):將dict或者包含兩個元素的元組列表轉換成url參 7 #數。例如 字典{'name': 'dark-bull', 'age': 200}將被轉換爲"name=dark-bull& 8 #age=200" 9 date = urllib.urlencode(query) 10 #向服務器端發送請求 11 post = urllib2.Request(url,date) 12 #接收服務端返回的內容 13 response = urllib2.urlopen(request) 14 #轉化爲頁面代碼 15 page = response.read() 16 17 18 print page
以上,控制檯上顯示出來的就是第三頁的代碼,這時你們就能夠用正則去匹配本身須要的東西了\(^o^)/~excel