gpt4 book ai didi

python - 在不下载正文的情况下检查scrapy中的响应头

转载 作者:行者123 更新时间:2023-12-01 08:48:45 25 4
gpt4 key购买 nike

一些 pdf url 不以“.pdf”结尾,因此,我们只能在检查响应头后才能找到。我想避免下载此类 pdf。在 Scrapy 中,在响应完全下载后检查 header 很容易。我如何只下载并检查响应 header ,然后才下载正文?

最佳答案

使用 HTTP 请求方法 HEAD 来获取 header 。然后检查 Content-Type 并基于此,您可以发出相同的请求,这次使用 GET 方法。请参阅这个最小的工作示例:

# -*- coding: utf-8 -*-
from __future__ import print_function, unicode_literals
import scrapy

class DummySpider(scrapy.Spider):
name = 'dummy'

def start_requests(self):
yield scrapy.Request('https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf',
callback=self.parse_headers, method='HEAD')

def parse_headers(self, response):
if response.headers['Content-Type'].startswith('application/pdf'):
yield response.request.replace(callback=self.parse, method='GET')

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

关于python - 在不下载正文的情况下检查scrapy中的响应头,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48536249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com