CrawlSpider也可以这样用,对每一个提取出的链接都调用某些操作
最简单的CrawlSpider用法如下:
CrawlSpider继承自scrapy.Spider
CrawlSpider可以定义规则,在解析html内容时,可以根据链接规则提取出指定链接,然后再向这些链接发送请求。(适合用于如果爬取了网页之后,需要提取链接再次爬取的情况)
最常用的三种
为方便测试,直接在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)