一步一步教你用Python爬虫框架Scrapy下载Pdf文件

      哈喽,感谢你在这寂寞的晚上看到这篇寂寞的文章。今天接到朋友的一个需求,下载pdf文件并且用网络上的书名保存。想到下载pdf文件啊,虽然requests也能实现,但是速度还是太慢了,于是乎,Scrapy走起...

一、安装 Scrapy    

首先,我们在项目里新建一个项目,名字就命名为  spider_pdf。然后,打开File -> Settings -> Project:spider_pdf,选择 +   输入Scrapy ,Install Package

一步一步教你用Python爬虫框架Scrapy下载Pdf文件

一步一步教你用Python爬虫框架Scrapy下载Pdf文件

一步一步教你用Python爬虫框架Scrapy下载Pdf文件

 

或者,你也可以在Terminal里输入命令 pip install Scrapy

一步一步教你用Python爬虫框架Scrapy下载Pdf文件

 

二、创建scrapy 项目

    Scrapy环境安装完成之后,我们开始创建Scrapy项目,在Terminal输入命令    Scrapy startproject 项目名字  我这里就用scrapy_pdf  命名

一步一步教你用Python爬虫框架Scrapy下载Pdf文件

接下来,要在  spiders 文件夹下创建 爬虫文件  使用命令 cd 

一步一步教你用Python爬虫框架Scrapy下载Pdf文件

在spiders文件夹下,使用命令 scrapy genspider 你的爬虫文件 爬取网站的域名  这里我的爬虫文件为spider

一步一步教你用Python爬虫框架Scrapy下载Pdf文件

创建完成之后,如下图

一步一步教你用Python爬虫框架Scrapy下载Pdf文件

其中,name是爬虫名字,allower_domains是你要的爬取网站的域名,start_urls是起始的网址,也就是从哪个网址开始爬

 

三、在items里添加两个参数用来保存文件下载路径和文件命名

一步一步教你用Python爬虫框架Scrapy下载Pdf文件

 

四、在spider里写爬虫逻辑

在这里需要注意一点,导入item的时候,需要使用相对路径,然后就是定位到元素,保存到item。在定位元素的时候,需要注意,一定要定位到有  .pdf  结尾的url,如

一步一步教你用Python爬虫框架Scrapy下载Pdf文件

一步一步教你用Python爬虫框架Scrapy下载Pdf文件

五、保存以书名命名的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是一次性的,所以不会出现重复的问题。这里的

一步一步教你用Python爬虫框架Scrapy下载Pdf文件

六、修改settings

ROBOTSTXT_OBEY = False修改为False

大概在67行这里,打开注释,修改为如下,并添加保存的位置,名字一定要是FILES_STORE

一步一步教你用Python爬虫框架Scrapy下载Pdf文件

 

七、运行

在Terminal中输入命令   scrapy crawl spider

八、感谢

感谢你花了宝贵的时间看到了第八步,这篇寂寞的文章不懂你看懂了没?送给同样寂寞的你,哈哈哈,晚安!