当当网书籍数据爬取及可视化分析

一、爬取的内容 

在这里我们爬取的是当当图书网中小说图书畅销榜近7日的榜单图书数据,数据中的内容包括:标题、 评论、 推荐、 作者、 出版日期、 出版社、 售价、 原价、 折扣、 电子书价格、 详情页(链接)

 

 

 二、数据爬取及代码实现

爬取步骤:

1. 发送请求

对于网址小说畅销榜-近7日畅销书排行榜-当当畅销图书排行榜发送请求

在这里能用requests就不用selenium,selenium采集速度相当而言比较慢,requests请求比较麻烦时,就用 selenium

--确定请求的url

--请求方式 用headers进行伪装python代码

url = 'http://bang.dangdang.com/books/bestsellers/01.03.00.00.00.00-recent7-0-0-1-1'

headers = {
    "User-Agent": 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/109.0.0.0 Mobile Safari/537.36',

}

2.获取数据(响应数据)

response = requests.get(url=url, headers=headers)

3.解析数据,提取我们想要的数据内容

selector = parsel.Selector(response.text)
lis = selector.css('ul.bang_list li')

# 遍历 attr()属性选择器 a::attr(title)提取的是a标签中的title属性 div:nth-child(5)组合选择器,选择第五个div标签
for li in lis:
    title = li.css('.name a::attr(title)').get()  # 标题
    href = li.css('.name a::attr(href)').get()  # 详情页
    comment = li.css('.star a::text').get().replace('条评论', '')  # 评论
    recommend = li.css('.tuijian::text').get().replace('推荐','')  # 推荐
    writer = li.css('div:nth-child(5) a::text').get()  # 作者
    date = li.css('div:nth-child(6) span::text').get()  # 出版日期
    press = li.css('div:nth-child(6) a::text').get()  # 出版社
    price_n = li.css('.price p:nth-child(1) .price_n::text').get()  # 售价
    price_r = li.css('.price p:nth-child(1) .price_r::text').get()  # 原价
    price_s = li.css('.price p:nth-child(1) .price_s::text').get().replace('折','')  # 折扣
    price_e = li.css('.price p:nth-child(2) .price_n::text').get()  # 电子书价格

4.保存数据

# 创建一个字典 。保存数据,保存表格数据.csv
dit = {
    '标题': title,
    '评论': comment,
    '推荐': recommend,
    '作者': writer,
    '出版日期': date,
    '出版社': press,
    '售价': price_n,
    '原价': price_r,
    '折扣': price_s,
    '电子书价格': price_e,
    '详情页': href,
}
csv_write.writerow(dit)  # 写入数据

5.翻页爬取 

# 遍历爬取26页数据内容
for page in range(1, 26):
    print(f"==========================正在采集第{page}页的数据内容=======================")
# 每页停留时间
    time.sleep(1.5)
    url = f'https://bang.dangdang.com/books/bestsellers/01.03.00.00.00.00-recent7-0-0-1-{page}'

 完整代码如下:

import requests
import parsel
import csv
import time

  • 24
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值