Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1327686
  • 博文数量: 115
  • 博客积分: 10011
  • 博客等级: 上将
  • 技术积分: 5785
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-28 09:13
文章分类
文章存档

2009年(23)

2008年(92)

我的朋友

分类: Python/Ruby

2008-11-18 11:16:51

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

阅读(749) | 评论(0) | 转发(0) |
0

上一篇:留痕3

下一篇:使用HttpClient取页面

给主人留下些什么吧!~~