如何停止scrapy 301重定向并停止解析重定向的页面

时间:2018-11-26 20:03:24

标签: python scrapy

我正在尝试抓取一个页面,该页面出于任何原因将scrapy重定向到301,然后将其解析为英语版本,然后对该网站进行了解析,因为规则明确排除了该网址,因此不应该对其进行解析。

在寻找有关如何停止任何重定向的解决方案时,我遇到了以下代码:

meta ={'dont_redirect': True}

不幸的是,这没有任何作用。我的蜘蛛课看起来像这样:

class GetbidSpider(CrawlSpider):
    name = 'test'
    meta ={'dont_redirect': True}
    allowed_domains = ['www.example.de']
    start_urls = ['https://www.example.url/bla.html']

    rules = (

        Rule(
            LinkExtractor(allow=['.*Mein-String.*[a-z]::[0-9].*']), 
            callback='parse_item'
        ),

        Rule(
            LinkExtractor(allow=['^.*de\/((?!My-String|:_:|productListingStyle|\.php).)*$']), 
            follow=True
        ),
    )

在这里配置重定向是正确的地方,为什么在第一个URL规则将不执行的情况下抓取解析输入?

1 个答案:

答案 0 :(得分:0)

为什么您尝试的方法不起作用:

  • 规则仅确定蜘蛛将创建哪些请求, 他们不控制重定向逻辑。
  • meta是a的属性 Request,并且仅在每个请求的基础上起作用。

如何禁用重定向:

全局禁用重定向的最简单方法是将REDIRECT_ENABLED设置设为False