Python爬取京东图书销量榜

Python小作业

题目:

从京东爬取2019年 “计算与互联网”的图书销量榜,包括图书的"书名", “作者”, “出版社”, “定价”, “京东价”, “好评率”,存入csv文件中。
爬取结果:
链接:https://pan.baidu.com/s/19PcHiFzIk0efVBXTgNoupw
提取码:vmua

注:网页结构及数据接口地址有可能发生变化,因此不能保证其时效性。

分析

爬取网页https://book.jd.com/booktop/0-0-0.html?category=3287-0-0-0-5-1

在这里插入图片描述

需要安装的库:
import requests
from bs4 import BeautifulSoup
import random
import re
import json
from selenium import webdriver
import time
import csv

运行selenium还需下载相应浏览器的驱动,并且拷贝到python的安装目录。

首先分析url中最后以为数字代表页数,由此可以通过拼接url的方式得到2019年的共5页的url。

url = "https://book.jd.com/booktop/0-0-0.html?category=3287-0-0-0-10005-"
count = 0
for i in range(1, 6):
    r = requests.get(url + str(i), headers=headers)
    r.encoding = "GBK"
    soup = BeautifulSoup(r.text, "html.parser")
    li = soup.find('ul', class_="clearfix").find_all('li')

使用bs4库对返回的页面进行解析,获取“作者”和“出版社”并保存在变量中。

for e in li:
    count += 1
    detail = e.find('div', class_="p-detail")
    href = "https:" + detail.find('a')['href']  # 二级链接
    dl = detail.find_all('dl')
    author = dl[0].find('dd').text.replace(' ', '').replace("\n", ' ').replace("著", "著 ")  # 作者
    press = dl[1].find('a').string  # 出版社

因书名在当前页面显示不完整,所以在商品详情页面获取。

new_soup 
  • 5
    点赞
  • 63
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值