一只爬虫带你看世界【11】

15.爬虫框架Scrapy 应用实战

使用scrapy抓取一个网站需要四个步骤:

Step one: 创建一个scrapy项目

Step two:定义item容器

Step three:编写爬虫

Step four:存储容器


Scrapy Engine 是框架的核心,控制数据流在所有组件的流动。

 

项目实战:在http://dmoztools.net/Computers/Programming/Languages/Python上,爬取pythonbooks和resource。


Step one:创建scrapy项目

打开命令行,cd到工程安装目录,键入命令$scrapy  startproject  tutorial

tutorial为项目名称


在工程目录中新增文件及目录:



Step two:创建item容器

Item容器:


打开并编辑 item.py


Step three:编写爬虫

在spider文件夹中新建一个名为dmoz_spider.py


打开命令行cd到工程目录,键入命令$ scrapy crawl dmoz

注意,dmoz为属性name的值


工程目录中增加了两个文件


之后解析该两个文件,准备知识如下:



进入shell模式,转到工程根目录,键入命令$ scrapy  shell “url”



进入>>>模式,可以对response进行处理,例如打印response.body



Body会反馈会好多内容,使用XPath进行信息筛选!



举个栗子

查找body中title标签的内容:


Response.Xpath(”//title”)      表示为查询title标签的信息

Response.Xpath(”//title”).extract()     表示只返回title标签内容

Response.Xpath(”//title/text()”).extract()     表示为去掉标签并返回内容


返回books列表中文章title

Response.xpath(‘//div[@class=”title-and-desc”]/a/div/text()’).extract()



使用for迭代器打印文章title


注意:

For函数内层中xpath中“div”前不需要“/”


退出shell



再次编辑spider文件中dmoz_spider.py文件



在命令行窗口键入命令:$scrapy crawl  dmoz



等待一会出现爬取返回的信息:



Step four:存储容器

在dmoz_spider.py文件中引入item容器,将爬取的信息存在item中,再将容器中的信息以json的形式存储并返回。



再次回到命令行进入命令:$scrapy crawl  dmoz  -oitems.json  -t  json

-o 后面是保存文件名

-t 后面是文件保存的格式




出现以下界面



工程根目录中会多一个文件:



结果展示:



原来网站信息截图:






评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值