python|scrapy爬虫|当当网的一万本书

python爬虫——以当当网为例
要求:获得当当网中国现代小说中一万本书的书名、作者、价格
软件:anaconda下的scrapy框架,pycharm

  1. 第一步:下载scrapy

    cmd:scrapy//
    (if no module named'scrapy')
    pip install scrapy
    
  2. 第二步:创建项目

    新建文件夹dangdang

  	cmd:cd dangdang
   	scrapy startproject dangdangs//创建项目
  1. 第三步:编译pycharm爬行命令
    打开当当网的中国现代小说页面,该页面网址为:http://category.dangdang.com/cp01.03.30.00.00.00.html
    在网页空白处右键点击检查,查看对应的代码

    用pycharm打开dangdangs.py
    用xpath定位书名、作者和价格

# -*- coding: utf-8 -*-
import scrapy

class DangdangsSpider(scrapy.Spider):
    name = 'dangdangs'
    allowed_domains = ['category.dangdang.com']
    start_urls = ['http://category.dangdang.com/cp01.03.30.00.00.00.html']

    def parse(self, response):
        selector = response.xpath('//ul[@class="bigimg"]//li')//进入ul class=bigimg,并获取其下所有li行的信息
        for s in selector://将每行信息提取出来
            title = s.xpath('p[1]/a/@title').extract_first()//书名:第一个p下a的title属性
            author = s.xpath('p[5]/span/a/@title').extract_first()//作者:第五个p下span下a的title属性
            price = s.xpath('p[3]/span/text()').extract_first()//价格:
            yield {
                'title': title,
                'author': author,
                'price': price,
            }//设置表格的列名
        next_urls = response.xpath('//div[@class="paging"]/ul/li[@class="next"]/a/@href').extract_first()//获得下一页网址
        if next_urls://继续爬下一页
            next_url=response.urljoin(next_urls)
            yield  scrapy.http.Request(next_url,callback=self.parse)
        pass

4.将爬取内容导出到excel
在pycharm命令行内输入:

scrapy crawl dangdangs -o dd.csv -s FEED_EXPORT_ENCODING='utf-8-sig'

其中FEED_EXPORT_ENCODING=‘utf-8-sig’解决导出到excel文字乱码问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值