You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为SitemapSpider设置默认Cookies及自定义Headers?

解决SitemapSpider自定义Headers和Cookies不生效的问题

你的代码问题在于重写了错误的方法,_request_sitemaps不是生成sitemap请求的正确入口,且未处理目标页面请求的参数传递。以下是两种场景的正确实现:

1. 仅给请求sitemap文件的请求添加Headers和Cookies

重写sitemap_requests方法(父类生成sitemap请求的入口):

class MySpider(SitemapSpider):
    name = 'myspider'
    sitemap_urls = ['https://www.sitemap-1.xml']
    custom_headers = {'pragma': 'no-cache',}
    custom_cookies = {"sdsd": "23234",}

    def sitemap_requests(self):
        for url in self.sitemap_urls:
            yield scrapy.Request(
                url=url,
                headers=self.custom_headers,
                cookies=self.custom_cookies,
                callback=self._parse_sitemap
            )

    def parse(self, response, **cb_kwargs):
        print(response.css('title::text').get())

2. 给sitemap文件请求和目标页面请求都添加Headers和Cookies

如果需要sitemap解析出的所有目标页面请求也带上自定义参数,需额外重写_parse_sitemap方法:

class MySpider(SitemapSpider):
    name = 'myspider'
    sitemap_urls = ['https://www.sitemap-1.xml']
    custom_headers = {'pragma': 'no-cache',}
    custom_cookies = {"sdsd": "23234",}

    def sitemap_requests(self):
        for url in self.sitemap_urls:
            yield scrapy.Request(
                url=url,
                headers=self.custom_headers,
                cookies=self.custom_cookies,
                callback=self._parse_sitemap
            )

    def _parse_sitemap(self, response):
        # 复用父类逻辑生成目标请求,再添加自定义参数
        for request in super()._parse_sitemap(response):
            request.headers.update(self.custom_headers)
            request.cookies.update(self.custom_cookies)
            yield request

    def parse(self, response, **cb_kwargs):
        print(response.css('title::text').get())

关键说明

  • 父类SitemapSpider的start_requests会调用sitemap_requests生成sitemap文件的请求,因此重写该方法才能正确传递参数。
  • 用custom_headers、custom_cookies命名类属性,避免和Scrapy内置属性冲突。
  • 若需目标页面请求带参数,必须在_parse_sitemap中处理父类生成的请求,添加参数后再返回。

内容的提问来源于stack exchange,提问作者m_sasha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 23:15:38