scrapy项目4:爬取当当网中机器学习的数据及价格(CrawlSpider类)
Posted 猴子吃果冻
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scrapy项目4:爬取当当网中机器学习的数据及价格(CrawlSpider类)相关的知识,希望对你有一定的参考价值。
scrapy项目3中已经对网页规律作出解析,这里用crawlspider类对其内容进行爬取;
项目结构与项目3中相同如下图,唯一不同的为book.py文件
crawlspider类的爬虫文件book的生成命令为:scrapy genspider -t crawl book \'category.dangdang.com\'
book.py代码如下:
# -*- coding: utf-8 -*- import scrapy # 创建用于提取响应中连接的对象 from scrapy.linkextractors import LinkExtractor # Rule 用于发送从 LinkExtractor 中提取的连接 from scrapy.spiders import CrawlSpider, Rule from dangdang05.items import Dangdang05Item class BookSpider(CrawlSpider): name = \'book\' allowed_domains = [\'category.dangdang.com\'] start_urls = [\'http://category.dangdang.com/cp01.54.12.00.00.00.html\'] # 提取连接信息,并将提取到的向提取到的url发送请求,调用回调函数处理请求 # 注意follow表示是否继续对response中的连接进行提取,True表示提取,False表示不再提取 # 当未指定回调函数时,follow的默认值为True,当指定回调函数时follow的默认值为False rules = [Rule(LinkExtractor(allow=r\'/pg\\d+-cp01.54.12.00.00.00.html\'),callback=\'parse_item\',follow=True)] def parse_item(self, response): # 实例化items中的类 item = Dangdang05Item() # 网页解析第一步,返回selector对对象 book_list = response.xpath(\'//ul[@class="bigimg"]/li\') for book_info in book_list: # 书籍名称 item[\'name\'] = book_info.xpath(\'./p[@class="name"]/a/@title\').extract()[0] # 书籍价格 item[\'price\'] = book_info.xpath(\'./p[@class="price"]/span[1]/text()\').extract()[0] yield item
以上是关于scrapy项目4:爬取当当网中机器学习的数据及价格(CrawlSpider类)的主要内容,如果未能解决你的问题,请参考以下文章