一、CrawlSpider类(有rule功能可以不用层层解析)
重新创建爬虫文件,不用默认爬虫类模板,用crawlspider类模板
创建好爬虫文件后,输入scrapy genspider -l(进入模板列表)
然后选择换用其他模板,默认是basic,这里要换成
scrapy genspider -t(选择使用的模板) crawl name(随便起的名字) 域名
创建好后,文件里会自动导入rule和LinkExtractor对象
Rule(定义三种规则:1、如何爬取url(LinkExtrac对象) 2、形成请求 3、响应的处理)
Rule用来定义CrawlSpider的爬取规则
ruless=(Rule(LinkExtractor(只能用来提取url)(allow=r’item‘(通过正则表达式来提取url)),callback=’parse_item‘ , follow = true),process_links=None)
start_urls发送请求后,引擎把响应交给了ruless,然后通过LinkExtrac提取到了次级页面url,提取到url后就会形成请求,然后引擎又拿到新的response后,
再把response通过callback参数交给parse_item的定义方法进行解析
allow=r’item‘中item用url填入即可把需要提取的网页都提取出来,需要提取多个,则可以设置一些正则的规则,比如\d(匹配