最近因为公司的自动化测试工具须要将测试结果导出到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