【发布时间】:2011-12-06 23:29:33
【问题描述】:
我有一个我想抓取的 URL 列表 - 其中 3000 个。
我想在每个 url 上深入三层,但我不想去外部 url - 只在我的起始列表域内的链接。
我知道如果我只想用几个 url 来做到这一点,我会简单地填充 allowed_domains 列表。
但是,当您到达 3000 个网址时,allowed_domains 列表对于 Scrapy 来说太大而无法处理(据我所知,它会将其变成一个大的正则表达式)所以它会中断......
有什么想法吗?
“规则”列表中的某些内容会很好。
rules = (Rule(SgmlLinkExtractor(allow = (<local_links_only??>)) ,callback = 'parse_item'),)
或者非现场中间件中的某些东西 - 无论如何要获取引用链接?
还是批量处理?一次获得 50 个网址?是否有任何钩子可以允许这样的事情 - 我可以看到 start_requests - 但没有像 finish_requests 这样的回调可以用来再次填充 start_urls 列表?
男人
【问题讨论】:
-
你的意思是这3000个url来自不同的网站?如果是这样,我认为您最好为每个蜘蛛设置单独的蜘蛛。
标签: python web-scraping scrapy