@作者 : SYFStrive
@创建时间 : 2022/8/10 22:01
📜: Scrapy框架之CrawlSpider案例
🥧: 点击跳转到上一篇Scrapy续文🦄
简介
- CrawlSpider是爬取那些具有一定规则网站的常用的爬虫,它基于Spider并有一些独特属性 rules: 是 Rule 对象的集合,用于匹配目标网站并排除干扰 parse_start_url: 用于爬取起始响应,必须要返回 Item , Request 中的一个。
- 爬取那些具有一定规则网站的常用的爬虫
CrawlSpider使用前准备📦
相关说明
- 继承自scrapy.Spider
- 独门秘笈
CrawlSpider可以定义规则,再解析html内容的时候,可以根据链接规则提取出指定的链接,然后再向这些链接发。
送请求所以,如果有需要跟进链接的需求,意思就是爬取了网页之后,需要提取链接再次爬取,使用CrawlSpider是非常合适的。 - 提取链接
链接提取器,在这里就可以写规则提取指定链接。
scrapy.linkextractors.LinkExtractor(
allow = (), # 正则表达式 提取符合正则的链接
restrict_xpaths = (), # xpath,提取符合xpath规则的链接
restrict_css = () # 提取符合选择器规则的链接)
) - 举例
- 正则用法:links1 = LinkExtractor(allow=r’list_23_\d+.html’)
- xpath用法:links2 = LinkExtractor(restrict_xpaths=r’//div[@class=“x”]')
- css用法:links3 = LinkExtractor(restrict_css=‘.x’)
- callback只能写函数名字符串, callback=‘parse_item’
- 在基本的spider中,如果重新发送请求,那里的callback写的是 callback=self.parse_item 【注‐
‐稍后看】follow=true 是否跟进 就是按照提取连接规则进行提取
基本使用
- 创建项目:scrapy startproject XXX
- 跳转到spiders路径
- 创建爬虫类:scrapy genspider -t crawl XXX URL
- 简单步骤:items 👉 spiders 👉 settings 👉 pipelines(数据保存到本地 或 数据保存到mysql数据库)
案例
遇到如下使用 CrawlSpider 是最好的选择
简单蜘蛛13页内容
📰代码演示:
dushuwangS.py
pipelines.py
如下图(蜘蛛成功🆗):
简单蜘蛛全部内容
开启跟进需求
follow=True
如下图(蜘蛛成功🆗):
最后
Scrapy框架还未结束(待更),觉得不错的请给我专栏点点订阅,你的支持是我们更新的动力,感谢大家的支持,希望这篇文章能帮到大家
点击跳转到我的Python案例专栏
下篇文章再见ヾ( ̄▽ ̄)ByeBye