Python 爬虫学习笔记(十(4))scrapy链接提取器CrawlSpider

CrawlSpider也可以这样用,对每一个提取出的链接都调用某些操作

  • 创建项目 scrapy startproject 项目的名字
  • 跳转到scrapy文件夹的目录下
  • 创建爬虫文件(语句和之前不同)
    scrapy genspider -t crawl 爬虫文件的名字 爬取的域名
    在这里插入图片描述
    产生的文件和之前略有区别,还有几个坑要注意。
  • 如果网页的分页是像上图一样,_2,_3这样区分的,则需要注意第一页的url!!!
  • 正则表达式的点(.)或其他特殊字符可能需要转义,前面加 \ 即可

最简单的CrawlSpider用法如下:

一、CrawlSpider介绍

CrawlSpider继承自scrapy.Spider

CrawlSpider可以定义规则,在解析html内容时,可以根据链接规则提取出指定链接,然后再向这些链接发送请求。(适合用于如果爬取了网页之后,需要提取链接再次爬取的情况)


二、CrawlSpider用法

最常用的三种

  1. allow = () 提取符合正则表达式的链接
  2. restrict_xpaths = () 提取符合xpath规则的链接
  3. restrict_css = () 提取符合选择器规则的链接

三、示例

为方便测试,直接在PyCharm终端输入
scrapy shell +爬取的url
在这里插入图片描述

示例代码如下:

利用allow+正则表达式

scrapy shell https://www.dushu.com/book/1188.html

In [1]: from scrapy.linkextractors import LinkExtractor

In [2]: link = LinkExtractor(allow = r'/book/1188_\d+\.html')

In [3]: link.extract_links(response)

利用restrict_xpaths+xpath语法

In [8]: link1 = LinkExtractor(restrict_xpaths=r'//div[@class="pages"]/a')

In [9]: link1.extract_links(response)


总结

  1. 需要先导入 from scrapy.linkextractors import LinkExtractor
  2. LinkExtractor(allow=r’’)是使用正则表达式检索
  3. LinkExtractor(restric_xpaths=r’’)是使用xpath语法检索
  4. LinkExtractor(restrict_css=r’’)是使用选择器规则检索
  5. restric_xpaths后面有个s!等号后面别忘加r
  6. 更方便的用法,创建文件时: scrapy genspider -t crawl
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

湫兮如风i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值