本文共 1129 字,大约阅读时间需要 3 分钟。
论坛里有人问如何写个简单的爬虫. 要求如下:
每天的最新文章里面的附件
如何做到
定时下载
#看了一下这个网站, 还好. 好久没折腾过 urllib什么的, 然后写了一个, 测试可以.
在正则匹配时, 建议把数据的编码方式转为脚本编码方式一致.
脚本如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | #!/usr/bin/env python #-*- coding:utf-8 -*- import urllib import re url = "http://www.bjjy.gov.cn" def get_html_data(u): h = urllib.urlopen(u).read() t = "" for i in h.split( "\n" ): try : t + = "\n" + i.decode( 'gbk' ).encode( 'utf-8' ) except : pass return t def get_link(data): d, link = re.findall(r '最新文章标题开始(.*)最新文章标题结束' , data, re.S), [] if len (d): s = re.findall(r '<A HREF="([^"].*)" TARGET="_blank"' , d[ 0 ], re.I) if len (s): for i in s: link.append(i) return link if __name__ = = "__main__" : html = get_html_data(url) f_link = get_link(html) for i in f_link: tmp_data = get_html_data(url + i) tmp_link = re.findall(r '<a href="([^"].*)"><span style' ,tmp_data, re.I) if len (tmp_link): for j in tmp_link: urllib.urlretrieve(url + j, (url + j).split( "/" )[ - 1 ]) |
上面要匹配 最新文章 那个地方, 之前没有把数据转码,就是不行.
以上脚本加个定时任务OK.
本文转自 nonono11 51CTO博客,原文链接:http://blog.51cto.com/abian/1672622,如需转载请自行联系原作者