目标
- 掌握crawlspider爬虫的创建方式
- 掌握crawlspdier中rules的书写
- 能够通过crawlspider类完成一个爬虫
1 crawlspider是什么
回顾之前的代码中,我们有很大一部分时间在寻找下一页的url地址或者是内容的url地址上面,这个过程能更简单一些么?
思路:
- 从response中提取所有的满足规则的url地址
- 自动的构造自己requests请求,发送给引擎
对应的crawlspider就可以实现上述需求,匹配满足条件的url地址,才发送给引擎,同时能够指定callback函数
2 认识crawlspider爬虫
2.1 创建crawlspdier爬虫的命令
scrapy genspider –t crawl itcast itcast.cn
2.2 观察爬虫内的默认内容
spider中默认生成的内容如下,其中重点在rules中
- rules是一个元组或者是列表,包含的是Rule对象
- Rule表示规则,其中包含
LinkExtractor,callback和follow LinkExtractor:连接提取器,可以通过正则或者是xpath来进行url地址的匹配callback:表示经过连接提取器提取出来的url地址响应的回调函数,可以没有,没有表示响应不会进行回调函数的处理follow:表示进过连接提取器提取的url地址对应的响应是否还会继续被rules中的规则进行提取,True表示会,Flase表示不会
class Itcast1Spider(CrawlSpider):
name = 'itcast1'
allowed_domains = ['itcast.cn']
start_urls = ['http://itcast.cn/']
rules = (
Rule(LinkExtractor(allow=r'Items/'), callback='parse_item', follow=True),
)
def parse_item(self, response):
i = {}
#使用xpath进行数据的提取或者url地址的提取
return i
2.3 crawlspider的使用
通过crawlspider爬取腾讯招聘的详情页的招聘信息,url:http://hr.tencent.com/position.php
思路分析:
-
列表页翻页
定义一个规则,来进行列表页的翻页,follow需要设置为True,列表页url地址的规律如下

-
详情页翻页
定义一个规则,实现从列表页进入详情页,并且指定回调函数

-
详情页数据的提取
在详情页url地址对应的回调函数中,实现数据提取

具体代码实现:https://blog.youkuaiyun.com/apollo_miracle/article/details/85015319
2.4 crawlspider使用的注意点

2.5 crawlspider的补充知识点(了解)

本文详细介绍Scrapy框架中CrawlSpider的使用方法,包括创建爬虫、编写rules规则、提取链接及数据,通过实例解析腾讯招聘页面爬取流程。
928

被折叠的 条评论
为什么被折叠?



