**我试图运行此拼凑查询以从给定URL下载所有相关的PDF **
我尝试使用“ scrapy crawl mySpider”执行此操作
hello
yes
world
hii
有人可以帮助我吗?预先感谢。
答案 0 :(得分:0)
您应该在出现scrapy.cfg的目录中运行命令。
答案 1 :(得分:-1)
代码中的缺陷:
http://www.pwc.com/us/en/tax-services/publications/research-and-insights.html 该网址重定向到https://www.pwc.com/us/en/services/tax/library.html
也没有ID为 all_results 的div,因此返回给搜寻器的html响应中不存在div#all_results。因此,parse方法中的第一行代码应产生错误。
要使scrapy crawl命令起作用,您应该位于配置文件 scrapy.cfg 所在的目录中。
修改:希望这段代码对您有所帮助。它会从给定的链接下载所有pdf。
代码:
#import urllib ---> Comment this line
import scrapy
from scrapy.http import Request
class pwc_tax(scrapy.Spider):
name = "pwc_tax"
allowed_domains = ["www.pwc.com"]
start_urls = ["https://www.pwc.com/us/en/services/consulting/analytics/benchmarking-services.html"]
def parse(self, response):
base_url = 'https://www.pwc.com'
for a in response.xpath('//a[@href]/@href'):
link = a.extract()
# self.logger.info(link)
if link.endswith('.pdf'):
#link = urllib.parse.urljoin(base_url, link) -> Comment this
link = base_url + link --> Add this line
self.logger.info(link)
yield Request(link, callback=self.save_pdf)
def save_pdf(self, response):
path = response.url.split('/')[-1]
self.logger.info('Saving PDF %s', path)
with open(path, 'wb') as f:
f.write(response.body)
代码存储库位于: https://github.com/NilanshBansal/File_download_Scrapy