最近学习python,为了巩固一下学过的知识,花了半天(主要还是因为自己正则表达式不熟)写了个小脚本来抓取一个网站上的投票信息,排名后进行输出。
抓取的网站网址是http://www.mudidi.net/topic-yinghuhuodong.html。我先在网站首页点了个查看源码,发现并没有下面的投票部分信息,颇为不解,咨询了一个PHP大牛同学,原来那部分是一个嵌套页面,有另外一个地址http://www.mudidi.net//toupiao/vote3.asp?id=2,真是才疏学浅,自惭形愧啊。
找到真实地址后,就可以提取页面信息了:
1 #获取页面数据
2 defgetUrlRespHtml():3 url = 'http://www.mudidi.net//toupiao/vote3.asp?id=2'
4 req =urllib2.Request(url)5 resp =urllib2.urlopen(req)6 respHtml =resp.read()7 #由于存在汉字,将页面转码成utf-8
8 respHtml = respHtml.decode('gbk').encode('utf-8')9 return respHtml
这里写了个函数,调用了urllib2这个库。最开始版本并没有转码这一步,但是结果会造成提取出的汉字都是乱码,查了好多资料,才知道需要转码,再次感叹才疏学浅,对网络编程真是没什么经验。
提取出网页信息后,就需要对信息进行处理。由于网页信息中我们需要的信息格式都是相同的,如下所示:
1
2
3 安康山水 美哉瀛湖4
5
6
7