Scrapy爬取当当网图书销售前100

本文介绍了使用Scrapy爬虫框架抓取当当网图书畅销榜前500名的相关信息,包括图书名称、购买链接、评论数量等,并在过程中遇到的乱码问题以及爬取数据不完整的问题进行了解决分析。
摘要由CSDN通过智能技术生成

scrapy爬取当当网图书畅销榜

一、采集任务

爬取当当网图书畅销榜信息,获取热销图书前500相关数据。

二、网页解析

1、 打开当当网,按照图书榜>图书畅销榜 进入当当网图书畅销榜[http://bang.dangdang.com/books/bestsellers/01.00.00.00.00.00-recent7-0-0-1-1],按住shift+Ctrl+I调出chrome浏览器的开发者工具,逐层找到每一个商品的代码,分析商品代码


(图片丢了嘤嘤嘤,不过不影响观看)

1556626807738

2、 分析后确定爬取“图书名称(bname)”、“购买链接(burl)”、“评论数目(bcomment)”、“推荐度(btuijian)”、“出版时间(btime)”、“折后价(bprice)”、“折扣(bdiscount)”这七项信息。

3、根据HTML源码构造XPATH语句。

3.1图书名称

代码结构:

<div class="name"><a href="http://product.dangdang.com/25259300.html" target="_blank" title="流浪的地球(刘慈欣著,无删节无改写,大人孩子均可阅读,此版本当当网销量遥遥领先!根据本书改编的同名电影2019春节上映。)">流浪的地球(刘慈欣著,无删节无改写,大人孩子均可阅读,此版本<span class='dot'>...</span></a></div>

分析代码结构后,发现可以从class=“name”的div下取文本,也可以从a标签中取title属性,本次爬取选择了后者,得出的

xpath路径为:

"//div[@class='name']/a/@title"

3.2购买链接

代码结构:在上面的图书名称代码中包含了购买链接,所以购买链接是提取相同路径下的不同属性,得出

xpath路径为:

"//div[@class='name']/a/@href"

3.3评论数目

代码结构:

<div class="star"><span class="level"><span style="width: 92%;"></span></span><a href="http://product.dangdang.com/25259300.html?point=comment_point" target="_blank">121374条评论</a><span class="tuijian">100%推荐</span></div>

可以看出评论人数在class="star"的div下的a标签的文本中,得出

xpath路径为:

"//div[@class='star']/a/text()"

同样地,可以得出其他需要获取的信息的xpath路径

"//span[@class='tuijian']/text()"#推荐度
"//div[@class='publisher_info']/span/text()"#出版时间
"//span[@class='price_n']/text()"#折后价
"//span[@class='price_s']/text()"#折扣
三、scrapy爬虫项目

1、新建项目及文件

在cmd中进入目标文件夹,输入命令语句建立新的scrapy爬虫项目

scrapy startproject dangdang

在pycharm中打开dangdang项目

1556627499291

新建一个爬虫文件

scrapy genspider -t basic dd dangdang.com

生成的文件结构:

1556627953381

2、编写代码

2.1首先在items文件中定义所要爬取的数据

items.py代码:

# -*- coding: utf-8 -*-

# Define here the models for you
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值