Python中urllib+urllib2+cookielib模块编写爬虫实战

时间:2021-05-22

超文本传输协议http构成了万维网的基础,它利用URI(统一资源标识符)来识别Internet上的数据,而指定文档地址的URI被称为URL(既统一资源定位符),常见的URL指向文件、目录或者执行复杂任务的对象(如数据库查找,internet搜索),而爬虫实质上正是通过对这些url进行访问、操作,从而获取我们想要的内容。对于没有商业需求的我们而言,想要编写爬虫的话,使用urllib,urllib2与cookielib三个模块便可以完成很多需求了。
首先要说明的是,urllib2并非是urllib的升级版,虽然同样作为处理url的相关模块,个人推荐尽量使用urllib2的接口,但我们并不能用urllib2完全代替urllib,处理URL资源有时会需要urllib中的一些函数(如urllib.urllencode)来处理数据。但二者处理url的大致思想都是通过底层封装好的接口让我们能够对url像对本地文件一样进行读取等操作。
下面就是一个获取百度页面内容的代码:

import urllib2 connect= urllib2.Request('http://patible; MSIE 7.0; Windows NT 5.1)')] urllib2.install_opener(opener) #登陆获取cookies postdata=urllib.urlencode({ 'user':'X11134564', 'pw':'demacialalala', 'imageField.x':'0', 'imageField.y':'0'}) rep=urllib2.Request( url='http://210.45.210.6/dzjs/login.asp', data=postdata ) result=urllib2.urlopen(rep) print result.geturl() #获取账目表 Postdata=urllib.urlencode({ 'nCxfs':'1', 'submit1':'检索'}) aa=urllib2.Request( url='http://210.45.210.6/dzjs/jhcx.asp', data=Postdata ) bb=urllib2.urlopen(aa) cc=bb.read() zhangmu=re.findall('tdborder4 >(.*?)</td>',cc) for i in zhangmu: i=i.decode('gb2312') i=i.encode('gb2312') print i.strip('&nbsp; ')

下面是程序运行结果~

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章