Scrapy - 在不同的相对 url 中提取 url

Scrapy - extract url within different relative url

我正在尝试使用 Scrapy 提取 pdf 以及 10k 格式(html 格式)。 为了提取它们,我使用以下 css 选择器:most_recent = response.css("div.view_btn > a::attr(href)").getall() returns ['/Click/29665', '/Click/19504'] 符合预期。

但是 pdf 和 html 的 url 在每个亲戚 url 中。 scrapy 如何获得绝对和“正确”url?

("正确" url = https://www.annualreports.com/HostedData/AnnualReports/PDF/NASDAQ_RMIX_2020.pdf)

我需要 url 因为 scrapy 将响应发送到另一个函数以下载 pdf 文件:yield Request(most_recent, callback=self.save_pdf)

提前致谢!

没有办法简单地“计算”PDF URL。因为当您的浏览器请求 https://www.annualreports.com/Click/10913 目标网站响应重定向 header Location: /HostedData/AnnualReports/PDF/NYSE_SMG_2020.pdf 并且仅在此之后您的浏览器才加载 PDF 文件。

但这对 Scrapy 来说不是问题。只需 yield 您的 Click URL 到 save_pdf 回调,它将自动 为您跟随重定向。