首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >抓取速度加快爬行

抓取速度加快爬行
EN

Stack Overflow用户
提问于 2015-02-08 17:52:44
回答 2查看 2.2K关注 0票数 2

我目前正在抓取一个网站,以提取产品信息。该网站由大约2000万的产品信息组成,我需要提取其中的每一个。我需要加快爬行速度,因为我的爬虫目前每分钟只抓取几百页。

这是我的爬虫示例代码。

代码语言:javascript
运行
复制
class XYSspider(CrawlSpider):
name = "XYZ"

allowed_domains = ["www.xyz.info"]
start_urls = ['http://www.xyz.info/']

rules = [
    Rule(LinkExtractor(allow=r'\.kat$'), follow=True),
    Rule(LinkExtractor(allow=r'/id_\d+/'), callback='parse_product'),
]

def parse_product(self, response):
    item = DmozItem()
    item['title'] = response.xpath('//title/text()').extract()[0].encode('utf-8')
    yield item

有没有什么方法可以加快抓取过程。以目前的速度,我需要几天的时间来抓取所有的数据。任何见解都会很有帮助。谢谢你

EN

回答 2

Stack Overflow用户

发布于 2015-02-09 01:35:55

确保在settings.py中将每个域的并发请求数设置为32。

如果这不起作用,它很可能是网站在扼杀你。站点通常具有某种类型的非/爬虫/爬虫检测,如果它们检测到来自同一IP的大量请求,则倾向于阻止或限制。

我使用的是http://www.crawlera.com,它是由scrapy团队运行的。它通过他们的代理网络路由你的所有请求,并处理禁令等。这是我能够高速抓取的唯一方法。

票数 1
EN

Stack Overflow用户

发布于 2016-04-13 15:29:32

你可以随心所欲地设置并发请求,当站点阻止你时,crawlera是很有用的,因为crawlera是一种代理轮转器,它为每个请求传递不同的IP。当然是有偿的,所以你必须花钱。所以,在购买一些额外的服务之前,我会建议你先试一试抓取。你可以-

1)尝试将你的爬虫连接到高速互联网,因为这在很大程度上很重要。

2)尝试将一次爬行拆分成多个爬行,然后运行蜘蛛。

3)尽量减少下载延迟。

任何许多.....

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28392616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档