python 爬虫框架Scrapy使用方法

2020-01-04  本文已影响0人  STiAmo

Python作为脚本语言,功能非常强大,这里介绍一下爬虫框架Scrapy有安装及使用方法介绍。

一、安装篇

python3在安装scrapy时,需要twisted的支持,但安装twisted会需要visual studio的支持,详见本人的另一文章Python 3.5 安装scrapy无法找到vcvarsall.bat解决方案.

pip3 install twisted

pip install scrapy

二、使用介绍

开始项目scrapy startproject project

开始项目scrapy startproject project

此时会生成一个目录结构如下:

结构

2. shell工具介绍

scrapy自带shell工具,是进行测试的好地方,我们以起点小说网为例,网址为:https://www.qidian.com/

scrapy shell运行后,我们可借助一些函数进行数据定位、解析、子链接的提取:

view(response) 查看网页

fetch(url|) 抓新的网页

response.css('a[href') #scrapy内置css选择器,具体请百度其它文章

extractor_first() #解析文本

extractor() #解析列表

from scrapy.linkextractors import LinkExtractorle=LinkExtractor(restrict_css('a[href]')links=le.extract_links(le)#以上这段代码用来提取链接

3. 爬虫实现

3.1 先建一个要爬取内容的类ProjectItem, 存入items.py

3.2 我们在spider文件夹下建一个novelspider.py,写入相关代码

此时我们就要用到scrapy shell 帮忙测试了,比如我们要抓取《重生之财源滚滚》这本小说的小说名,可以在shell下用如下代码得到:

scrapy shell https://www.qidian.com/finish

novels=response.css('.book-mid-info')

novels[i].css('h4 a[href]::text').extract_first()'重生之财源滚滚'

通过上面的代码,我们把小说名给抓出来了.同理可以抓其它字段,具体代码如下:

4. 运行爬虫

回到project目录,运行scrapy crawl novel_qidian -o box.csv命令其中novel_qidian就是在novelSpider类中的name项, -o box.csv 即以csv文件形式存储内容以下是爬取到的内容:

scrapy作为一个异步爬虫框架,非常容易写出高质量的爬虫,同时scrapy还有很多功能中间件,对于设置访问头,图片及文件下载都有相应的方法,有兴趣的可以深入研究!

上一篇下一篇

猜你喜欢

热点阅读