我试图提取的pdf以及10k表单(以html格式)使用Scrapy。为了提取它们,我使用以下css选择器:most_recent = response.css("div.view_btn > a::attr(href)").getall(),它按预期返回['/Click/29665', '/Click/19504']。
但是pdf和html的url在每个相对的url中。刮伤怎么能得到绝对和“正确”的url?
(“更正”url = https://www.annualreports.com/HostedData/AnnualReports/PDF/NASDAQ_RMIX_2020.pdf)
我需要url,因为scrapy将响应发送到另一个函数,以便下载pdf文件:yield Request(most_recent, callback=self.save_pdf)。
提前谢谢你!

发布于 2021-08-28 10:04:43
没有办法简单地“计算”PDF URL。因为当您的浏览器请求https://www.annualreports.com/Click/10913时,目标网站响应将使用重定向标题Location: /HostedData/AnnualReports/PDF/NYSE_SMG_2020.pdf,并且在此之后,浏览器才会加载PDF文件。
但这对Scrapy来说不是问题。只要yield您的Click URL到save_pdf回调,就会自动为您重定向。
https://stackoverflow.com/questions/68963187
复制相似问题