引入
之前的代码中,我们有很大一部分时间在寻找下一页的URL地址或者内容的URL地址上面,这个过程能够更简单一些吗?
思路
1、从response中提取所有的a标签对应的URL地中
2、自动的构造自己resquests请求,发送给引擎
生成crawlspider的命令
scrapy genspidr -t crawl 爬虫名字 域名
使用LinkExtractors可以不用程序员自己提取想要的url,然后发送请求。这些工作都可以交给LinkExtactors,他会在所有爬的页面中找到满足规则的url,实现自动的爬取
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
)
主要参数讲解 :
定义爬虫的规则类
class scrapy.spiders.Rule(
link_extractor,
callback = None,
cb_kwargs = None,
follow = None,
process_links = None,
process_request = None
)
主要参数讲解:
注意点
callback
:连接提取器提取出来的url地对应的响应交给他处理follow
: 连接提取器提取出来的URL地址对应的响应是否继续被rules来过滤