1. rules规则
start_urls = [' ']
rules = [Rule(SgmlLinkExtractor(allow=[r' ']), callback=' ', follow=True)]
其中callback一般不使用parse,因为parse是默认的,如果用parse的话,会导致重写.
rules规则是指在start_urls下所有的链接中符合allow规则的,进行搜索
2. 递归调用网址
newsurl = ' '+b.xpath('.//a/@href').extract()[0].encode('utf-8')
yield Request (url=newsurl, callback=self.parse_item)
其中需要注意要将list编码成url字符串,然后进行拼接,然后通过引入进行操作.
from scrapy.http import Request
3. 编码问题
当Item在Spider中被收集之后,它将会被传递到Item Pipeline,一些组件会按照一定的顺序执行对Item的处理。
pipelines应用:
清理HTML数据
验证爬取的数据(检查item包含某些字段)
查重(并丢弃)
将爬取结果保存到数据库中
通过使用pipelines进行操作,参考网址:
http://git.oschina.net/ldshuang/imax-spider/commit/1d05d7bafdf7758f7b422cc1133abf493bf55086#diff-1
http://www.addbook.cn/blog/scrapy%E4%B8%AD%E6%96%87%E7%BC%96%E7%A0%81%E9%97%AE%E9%A2%98