【问题标题】:Sending Request Headers with Scrapy Spider to avoid 403 response Status使用 Scrapy Spider 发送请求标头以避免 403 响应状态
【发布时间】:2020-08-25 15:40:09
【问题描述】:

我正在向website 发出请求,但我收到了403 响应。我们如何使用 scrapy 蜘蛛发送请求标头,以便我们可以得到 200 响应?

此外,网站会使用新请求更新 cookie。当我们发出新请求时,是否可以使用 scrapy 蜘蛛旋转 cookie?

# -*- coding': 'utf-8 -*-
import scrapy


    class MainSpider(scrapy.Spider):
        name = 'main'
        allowed_domains = ['11880.com']
        start_urls = ['https://www.11880.com/suche/makler/deutschland']
    
        def parse(self, response):
            print(response.body)

希望得到一些答案。

问候


【问题讨论】:

标签: python scrapy


【解决方案1】:

这意味着没有访问权限检查您的标头参数是否通过。不正确

【讨论】:

【解决方案2】:

覆盖start_requests() 方法并传递headers 参数。

import scrapy

class MainSpider(scrapy.Spider):
    name = 'main'
    allowed_domains = ['11880.com']
    start_urls = ['https://www.11880.com/suche/makler/deutschland']
    headers = {
        'header1': 'value1',
        'header2': 'value2'
    }

    def start_requests(self):
        for url in self.start_urls:
            yield scrapy.Request(url=url, callback=self.parse, headers=self.headers)

    def parse(self, response):
        print(response.body)

【讨论】:

  • 我收到“yield scrapy.Request(url=url callback=self.parse, headers=self.headers)”、意外令牌“回调”和意外令牌“标题”的这些错误跨度>
  • 对不起!我在url=url 后面漏了一个逗号,刚刚更新了帖子。
  • 哦,对不起,我什至没有注意到:D
  • 它仍然给我一个 403 响应。为了获得 200 条回复,我们还可以采取哪些其他方式?这是因为当我们向网站发出新请求并且我使用的是过期的旧请求标头时,请求标头会发生变化?
猜你喜欢
  • 2015-12-03
  • 1970-01-01
  • 1970-01-01
  • 2017-10-31
  • 2021-02-12
  • 2019-10-29
  • 2021-10-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多