简单的爬虫示例

对于静态页面的爬虫,道理很简单,就是见到链接地址就进去,然后打开当前页面,把返回的页面信息保存下来就行了。这是最简单的道理,做个小程序,没几行就能实现,但是如果要考虑到效率和增量爬虫,考虑到爬虫调度就需要复杂得多了。这几天需要获取一些数据,写了一个简单的静态页获取程序。如下是其中核心代码:
代码的意思就是打开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