一步一步教你用Python爬虫框架Scrapy下载Pdf文件
哈喽,感谢你在这寂寞的晚上看到这篇寂寞的文章。今天接到朋友的一个需求,下载pdf文件并且用网络上的书名保存。想到下载pdf文件啊,虽然requests也能实现,但是速度还是太慢了,于是乎,Scrapy走起...
一、安装 Scrapy
首先,我们在项目里新建一个项目,名字就命名为 spider_pdf。然后,打开File -> Settings -> Project:spider_pdf,选择 + 输入Scrapy ,Install Package
或者,你也可以在Terminal里输入命令 pip install Scrapy
二、创建scrapy 项目
Scrapy环境安装完成之后,我们开始创建Scrapy项目,在Terminal输入命令 Scrapy startproject 项目名字 我这里就用scrapy_pdf 命名
接下来,要在 spiders 文件夹下创建 爬虫文件 使用命令 cd
在spiders文件夹下,使用命令 scrapy genspider 你的爬虫文件 爬取网站的域名 这里我的爬虫文件为spider
创建完成之后,如下图
其中,name是爬虫名字,allower_domains是你要的爬取网站的域名,start_urls是起始的网址,也就是从哪个网址开始爬
三、在items里添加两个参数用来保存文件下载路径和文件命名
四、在spider里写爬虫逻辑
在这里需要注意一点,导入item的时候,需要使用相对路径,然后就是定位到元素,保存到item。在定位元素的时候,需要注意,一定要定位到有 .pdf 结尾的url,如
五、保存以书名命名的pdf文件
在pipelines.py文件中修改类的object为FilesPipeline,然后使用方法get_media_requests(self,item,info),进行scrapy.Requests的请求并使用yield返回,在请求中利用一次性meta,传递file_name
使用方法,file_path(self,request,response=Nome,info=Nome),获取刚刚请求的url、file_name,因为meta是一次性的,所以不会出现重复的问题。这里的
六、修改settings
ROBOTSTXT_OBEY = False修改为False
大概在67行这里,打开注释,修改为如下,并添加保存的位置,名字一定要是FILES_STORE
七、运行
在Terminal中输入命令 scrapy crawl spider
八、感谢
感谢你花了宝贵的时间看到了第八步,这篇寂寞的文章不懂你看懂了没?送给同样寂寞的你,哈哈哈,晚安!