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

 

转载于:https://www.cnblogs.com/houzichiguodong/p/9129376.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值