- 论坛徽章:
- 0
|
对于静态页面的爬虫,道理很简单,就是见到链接地址就进去,然后打开当前页面,把返回的页面信息保存下来就行了。这是最简单的道理,做个小程序,没几行就能实现,但是如果要考虑到效率和增量爬虫,考虑到爬虫调度就需要复杂得多了。这几天需要获取一些数据,写了一个简单的静态页获取程序。如下是其中核心代码:
代码的意思就是打开URL,然后保存,就可以。Python做的非常好,很稳定,这样的代码跑一个晚上都不会有问题,对于爬虫来说,一个固定IP如果每位中发起100链接,很有可能就被网站给屏蔽了,所以就这样一个链接重复打开,问题不大。一个爬上爬下2G所有的数据。
如果想要提高效率,可以使用一个线程池,使用固定线程去爬取,其中有涉及到线程调度什么的,复杂了。
def getUrlData( url , n, savePath ):
urls = getURl( url, n )
num = 0
i = 1
for u in urls:
try:
f = urllib.urlopen( u )
data = f.read()
f.close()
except:
print "can't get " + i.__str__()
pass
f2 = open( savePath + i.__str__() + ".txt", 'w' )
f2.write( data )
f2.close()
i = i + 1
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/3176/showart_1421789.html |
|