启动爬虫,进入项目目录E:\demo\fourth下,在此处打开命提示符窗口输入命令:
注:网站若发现抓取时报重定向错误了,尝试修改user-agent后,再启动爬虫爬取数据。操作步骤如下:
2、修改项目配置文件settings.py,加上如下代码:
安装pypiwin32时碰到了一次超时断开,再次输入命令重新安装才成功,若重复安装都失败可以尝试连接vpn再安装。下一篇《Python爬虫实战:单页采集》将讲解如何爬取微博数据(单页),同时整合Python爬虫程序以Gooseeker规则提取器为接口制作一个通用的采集器,欢迎有兴趣的小伙伴一起交流进步。
本篇会通过介绍一个简单的项目,走一遍Scrapy抓取流程,通过这个过程,可以对Scrapy对基本用法和原理有大体的了解,作为入门。
在本篇开始之前,假设已经安装成功了Scrapy,如果尚未安装,请参照。
创建一个Spider来抓取站点和处理数据
通过命令行将抓取的内容导出
在抓取之前,你必须要先创建一个Scrapy项目,可以直接用scrapy
命令生成,命令如下:
在任意文件夹运行都可以,如果提示权限问题,可以加sudo
运行。这个命令将会创建一个名字为tutorial的文件夹,文件夹结构如下:
name,每个项目里名字是唯一的,用来区分不同的Spider。
allowed_domains
允许爬取的域名,如果初始或后续的请求链接不是这个域名下的,就会被过滤掉。
start_urls
,包含了Spider在启动时爬取的url列表,初始请求是由它来定义的。
parse,是Spider的一个方法,默认情况下,被调用时start_urls
里面的链接构成的请求完成下载后,返回的response就会作为唯一的参数传递给这个函数,该方法负责解析返回的response,提取数据或者进一步生成要处理的请求。
Item是保存爬取数据的容器,它的使用方法和字典类似,虽然你可以用字典来表示,不过Item相比字典多了额外的保护机制,可以避免拼写错误或者为定义字段错误。
quotes = /page/2,通过这个链接我们就可以构造下一个请求。
构造请求时需要用到/page/2/
第三句是通过url和callback构造了一个新的请求,回调函数callback依然使用的parse方法。这样在完成这个请求后,response会重新经过parse方法处理,处理之后,得到第二页的解析结果,然后生成第二页的下一页,也就是第三页的请求。这样就进入了一个循环,直到最后一页。
通过几行代码,我们就轻松地实现了一个抓取循环,将每个页面的结果抓取下来了。
现在改写之后整个Spider类是这样的:
最好的安装方式是通过wheel文件来安装,,从该网站找到lxml的相关文件。假如是Python3.5版本,WIndows
下载之后,运行如下命令安装:
即可完成lxml的安装,其他文件替换文件名即可。
然后安装wheel文件即可,命令如下:
其他版本替换文件名即可。
从官方网站 下载对应版本的安装包安装即可。
最后安装Scrapy即可,依然使用pip,命令如下: