重定向后未在scray中调用回调函数

2024-06-06 21:37:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个最小的爬虫,我创建如下-

from scrapy.selector import Selector
from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
from scrapy.contrib.spiders import CrawlSpider, Rule
from sandbox.items import SandboxItem

class SandboxCrawlSpider(CrawlSpider):
    name = 'sandbox_crawl'
    allowed_domains = ['amazonaws.com']
    start_urls = ['http://www.amazonaws.com/']
    rules = (
        Rule(SgmlLinkExtractor(), callback=('parse_item'), follow=True),
    )

    def parse_item(self, response):
        sel = Selector(response)
        i = SandboxItem()
        print response.url

        return i

这里的问题是我允许的域amazonaws.com重定向到aws.amazon.com。在

重定向后,爬虫程序在页面中爬行,但从不调用回调函数。输出是这样的

^{pr2}$

如前所示,parse_项从不被调用响应.url'无效,函数中的任何其他语句也不起作用。蜘蛛有错误吗?在


Tags: fromimportcomparseresponsecontribruleselector
2条回答

只需将"aws.amazon.com"添加到allowed_domains

allowed_domains = ['amazonaws.com', 'aws.amazon.com']

向请求添加dont_filter=True,但这并不能最终解决问题。在

像这样:

Request('http://example.org/', callback = self.func, dont_filter=True)

相关问题 更多 >