使用crawlspider实现页面的提取+案例

本文介绍了CrawlSpider在Scrapy中的工作原理,包括链接提取器和规则的设置,以及如何创建CrawlSpider。CrawlSpider利用LinkExtractor提取链接,并遵循设定的规则决定是否跟进。此外,还讲解了简单的正则表达式应用和相关代码示例,强调了在使用框架时遵循开闭原则的重要性。
摘要由CSDN通过智能技术生成

引入:CrawlSpider是Scrapy提供的一个通用Spider。在Spider里,我们可以指定一些爬取规则来实现页面的提取,这些爬取规则由一个专门的数据结构Rule表示。Rule里包含提取和跟进页面的配置,Spider会根据Rule来确定当前页面中的哪些链接需要继续爬取、哪些页面的爬取结果需要用哪个方法解析等。
在这里插入图片描述

1.CrawlSpider的基本工作原理

CrawlSpider的基本工作原理和BasicSpider雷同。不同点在于获取响应对象后,通过链接提取器LinkExtractor获取请求链接,如果提取规则中配置了follow=True即跟进,则将提取的请求url链接传递给调度器,然后循环发送请求。如果follow=False,将不再发送请求。跟进的过程中有可能出现请求重复发送,Scrapy框架默认会过滤重复请求
在这里插入图片描述

2.链接提取器和提取规则

链接提取器是从scrapy.http.Response对象中提取链接的对象。在Scrapy中,有内置提取器,如 scrapy.linkextractors import LinkExtractor 。链接提取器有多个,每个链接提取器都有一个名为 extract_links 的公共方法,其中包含一个Response对象并返回一个scrapy.link.Link对象列表。链接提取器只能实例化一次,并多次调用extract_links方法以提取具有不同响应的链接。CrawlSpider类使用链接提取器和一组规则,其主要目的是提取链接。 默认情况下,链接提取器是LinkExtractor,其功能与LxmlLinkExtractor相同。是一个高度推荐的链接提取器,因为它具有方便的过滤选项,使用LXML库强大的HTMLParser的解析器

emmm意思就是在Scrapy里又一个提取每个网页连接的东西,有一个大家都认可的名字extract_links.

3.CrawlSpider创建方法

CrawlSpider模板文件也是通过命令“scrapy genspider”生成,与生成basicspider模板文件的不同的是需要增加参数“-t crawl”。
在这里插入图片描述
因为我之前是爬取了一个人邮书籍的所以这里我也直接在这个项目创建了文件。方便对比两个的操作。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值