python网络爬虫CrawlSpider使用详解-创新互联
CrawlSpider
- 作用:用于进行全站数据爬取
- CrawlSpider就是Spider的一个子类
- 如何新建一个基于CrawlSpider的爬虫文件
- scrapy genspider -t crawl xxx www.xxx.com
- 例:choutiPro
LinkExtractor连接提取器:根据指定规则(正则)进行连接的提取
Rule规则解析器:将连接提取器提取到的连接进行请求发送,然后对获取的页面进行指定规则【callback】的解析
一个链接提取器对应唯一一个规则解析器
例:crawlspider深度(全栈)爬取【sunlinecrawl例】
分布式(通常用不到,爬取数据量级巨大、时间少时用分布式)
概念:可将一组程序执行在多态机器上(分布式机群),使其进行数据的分布爬取
原生的scrapy框架是否可以实现分布式?
不能
抽屉
# spider文件 import scrapy from scrapy.linkextractors import LinkExtractor from scrapy.spiders import CrawlSpider, Rule class ChoutiSpider(CrawlSpider): name = 'chouti' # allowed_domains = ['www.xxx.com'] start_urls = ['https://dig.chouti.com/1'] # 连接提取器:从起始url对应的页面中提取符合规则的所有连接;allow=正则表达式 # 正则为空的话,提取页面中所有连接 link = LinkExtractor(allow=r'\d+') rules = ( # 规则解析器:将连接提取器提取到的连接对应的页面源码进行指定规则的解析 # Rule自动发送对应链接的请求 Rule(link, callback='parse_item', follow=True), # follow:True 将连接提取器 继续 作用到 连接提取器提取出来的连接 对应的页面源码中 ) def parse_item(self, response): item = {} #item['domain_id'] = response.xpath('//input[@id="sid"]/@value').get() #item['name'] = response.xpath('//div[@id="name"]').get() #item['description'] = response.xpath('//div[@id="description"]').get() return item
另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
文章标题:python网络爬虫CrawlSpider使用详解-创新互联
URL网址:http://ybzwz.com/article/dsddjg.html