【2026最新当当网爬虫分享】用Python爬取千本日本相关图书,自动分析价格分布!

您好,我是@iFeng的小屋,一枚4年程序猿。

一、爬取目标

我发现很多对日本文化、历史或文学感兴趣的朋友,或者做出版市场分析的小伙伴,想批量了解市面上相关图书的情况。手动去网站一页页翻,效率太低了。

所以,这次我写了这个当当网图书数据爬虫 。它不仅能根据关键词(比如"日本")批量抓取图书信息,还能自动对价格进行分段统计,用图表直观地展示出来,让你一眼看清市场分布。

目前是源码格式,还没有封装成软件,如果想要软件的我后续开发一个软件版本的。

二、展示爬取结果

三、原理讲解

  1. 分析当当网搜索页(如"日本"关键词)的链接规律,主要是 page_index 参数控制翻页。

  2. requests 库请求页面,用 lxmlXPath 精准定位并提取每一本书的详细信息。

  3. pandas 把抓到的数据存成表格(CSV格式)。

  4. 正则表达式 从价格字符串里把纯数字价格提取出来。

  5. 根据设定的价格区间(比如10-20万日元、20-30万日元)进行统计,最后用 matplotlib 画成一张漂亮的横向条形图。

三、爬虫代码讲解

导入库:

python 复制代码
import requests
from lxml import etree
import pandas as pd
import re
import matplotlib.pyplot as plt
3.1 核心思路与配置

运行需要配置请求头,模拟浏览器访问。其中,Cookie是关键,可以从浏览器开发者工具里获取。

python运行

3.2 关键步骤:抓取列表与翻页

核心是构造翻页URL,并循环抓取,直到满足数量要求。

python 复制代码
page = 1
while len(book_list) < 1000: # 目标:爬1000条
    url = f'http://search.dangdang.com/?key=%C8%D5%B1%BE&act=input&page_index={page}'
    response = requests.get(url, headers=headers)
    # ... 解析并存储数据
    page += 1 # 关键:页码加1,实现翻页
3.3 关键步骤:数据清洗与可视化

从原始字符串中提取纯数字价格,并定义区间进行统计绘图。

python 复制代码
# 1. 用正则表达式从'¥XX.XX¥'这种格式里提取价格数字
price_num = re.findall(r'¥(.*?)¥', price_string)

# 2. 定义价格区间并统计(此处逻辑需在完整源码中完善)
price_ranges = ['10-20万', '20-30万', '30+万']
# 3. 使用matplotlib绘制横向条形图
plt.barh(price_ranges, range_counts) # 绘制图表
plt.title('图书价格区间分布分析')
plt.show()

四、如何运行?

  1. 准备好环境 :安装依赖 pip install requests lxml pandas matplotlib

  2. 更新请求头 :将代码中的 headers 字典里的 Cookie 值,替换成你自己浏览器里的最新Cookie。

  3. 修改关键词(可选) :如果想爬其他主题,把URL里的 %C8%D5%B1%BE(这里是"日本"的编码)换成其他关键词的编码即可。

  4. 直接运行脚本 :程序会先爬取数据保存为 output_1.csv,然后自动弹出分析图表窗口。

五、说明

需要本文提到的完整可运行Python源码(包含数据清洗和可视化的完整逻辑)的小伙伴,我都放在了与此号同名的公主号里,大家自行获取。

持续分享Python干货中!更多爬虫源码干货,请前往主页查看。

相关推荐
烂蜻蜓18 分钟前
Flask入门教程(十二):表单处理——从基础到Flask-WTF完整实践
后端·python·flask
jay神34 分钟前
【计算机毕业设计】基于Flask+Vue的电影数据可视化与智能推荐系统
前端·vue.js·python·信息可视化·flask·毕业设计·课程设计
满怀冰雪1 小时前
24-PaddleClas 模型评估、导出与推理部署入门
大数据·人工智能·python·深度学习·paddle
Chester_19996 小时前
CSP202203C.计算资源调度器
开发语言·数据结构·c++·蓝桥杯
DeepVisionary7 小时前
谷歌 Gemini Omni 1.1 Flash 正式发布:4K 视频、40 秒场景延伸,视频生成进入按 token 计费时代
python·自动化
阡之尘埃7 小时前
Python数据分析案例85——大模型微调全流程(SFT的LoRA微调)
人工智能·python·深度学习·语言模型·llm·微调·千问
海兰7 小时前
【应用】基于 Next.js 16 + Python mplfinance的金融K线图与技术指标可视化平台(三)
javascript·python·金融
EXI-小洲7 小时前
Java 操作 Word:字符串替换、图片插入、动态生成表格与API接口下载
java·开发语言·spring boot·word
cvcode_study8 小时前
Ollama+ComfyUI 多模态
大数据·人工智能·python
会周易的程序员8 小时前
给 PLC 写一个字节码虚拟机:STVM 虚拟机架构设计
开发语言·c++·虚拟机·软plc·iec61131·stvm