在上一个糗事百科的爬虫案例中。我们是自己在解析完整个页面后获取下一页的url,然后重新发送一个请求。有时候我们想要这样做,只要满足某个条件的url,都给我进行爬取。那么这时候我们就可以通过Craw1spider来帮我们完成了。cralsder继承自 Spider,只不过是在之前的基础之上增加了新的功能,可以定义爬取的url的规则,以后scrapy碰到两足条件的url都进行爬取,而不用手动的 yield ReqCrawlSpider爬虫
创建 CrawlSpider爬虫:
之前创建爬虫的方式是通过 scrapy genspider [爬虫名字] [域名]的方式创建的,如果想要创建Crawlspider爬虫,那么应该通过以
下命令创建:
scrapy senspider -c crawl [爬虫名字][域名]
Link Extractors链接提取器:
使用 LinkExtractors可以不用程序员自己提取想要的url,然后发送请求。这些工作都可以交给 LinkExtractors,他会在所有爬的页面中找到满足规则的ur1,实现自动的爬取。以下对 LinkExtractors类做一个简单的介绍
class scrapy.linkextractors.LinkExtractor(
allow =(),
deny =(),
allow_domains(),
deny_domains (),
deny_extensions=None,
restrict_xpaths=(),
tags =('a','area),
attrs=('href')
canonicalize=True,
unique=True,
process_value=None
主要参数讲解
allow:允許的url。所有满足这个正则表达式的url都会被提取。
deny:禁止的url。所有满足这个正则表达式的url都不会被提取。
allow_ domains:允许的域名・只有在这个里面指定的坡名的url才会被提取
deny_ domains:禁止的域名。所有在这个里面指定的域名的url不会被提取
restrict_xpaths:严格的path和allow共同过滤链接