AmazingCounters.com

[python]做一个简单爬虫

为什么选择python,它强大的库可以让你专注在爬虫这一件事上而不是更底层的更繁杂的事

 

爬虫说简单很简单,说麻烦也很麻烦,完全取决于你的需求是什么以及你爬的网站所决定的,遇到的第一个简单的例子是paste.ubuntu.com

 

这是一个贴代码的网站,没事喜欢看看有没有什么好玩的东西,只是上面大部分都是minecraft的东西,于是写了以下代码

 1 import urllib2
 2 import socket
 3 import re
 4 def getData(url, timeOut = 10):
 5     try:
 6         html = urllib2.urlopen(url, timeout = timeOut)
 7         htmlData = html.read()
 8     except Exception, e:
 9         htmlData = None
10     finally:
11         return htmlData
12 
13 for i in xrange(13124750, 131230000):
14     c = getData("http://paste.ubuntu.com/"+str(i)+"/")
15 
16     #if re.search("#include", c):
17     if c.find("#include") != -1:
18         print i

 

一段很简单的程序,在官方文档中可以看到在python2.6以后urllib2.urlopen加入了timeout参数,万一网站打不开也不会无限卡死在这里,代码中注释了一行正则表达式,如果想匹配复杂的东西可以使用re

 

posted @ 2015-11-07 13:40  philippica  阅读(326)  评论(0编辑  收藏  举报