注册 登录
编程论坛 Python论坛

关于爬虫的问题,10线程还是慢。附代码

pypro 发布于 2010-04-11 13:32, 988 次点击
程序代码:
class S(SGMLParser):
    '''取链接的'''
  
def pachong(url):
    a=urllib2.urlopen(url)
    parser=S()
    parser.feed(a.read())
    b=parser.urls  #HTML里取得的链接列表
    if b:return b
def main():
    while True:
        url=q.get()
        c=pachong(url)
        if c:
            for url in c:
                print url
                q.put(url)
q=Queue()
q.put('http://www.')
for i in range(10):
    t=threading.Thread(target=main)
    t.start()

其中会带有处理链接的代码,但是这些应该不怎么影响爬虫的。。 感觉爬的就慢。。。




[ 本帖最后由 pypro 于 2010-4-11 13:34 编辑 ]
3 回复
#2
外部三电铃2010-04-11 13:50
1、如果已经达到你带宽的极限再怎么加线程也没用了
2、是不是那个网站有防火墙?防火墙能根据短时间内的访问次数判断是爬虫还是正常访客,不过这样它把搜索引擎的爬虫也给阻挡了
#3
pypro2010-04-11 14:41
回复 2楼 外部三电铃
拿百度测试的。
我2M宽带,应该不是那么慢的
#4
外部三电铃2010-04-11 16:02
采集的时候看着任务管理器里的联网

100M的网卡,如果持续在2%左右说明已经满速了
1