如何使用python爬取当当网所有数据分析书籍信息
发表于:2025-12-04 作者:千家信息网编辑
千家信息网最后更新 2025年12月04日,小编给大家分享一下如何使用python爬取当当网所有数据分析书籍信息,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、爬取
千家信息网最后更新 2025年12月04日如何使用python爬取当当网所有数据分析书籍信息
1、爬取目标
对于要爬取的当当网书籍信息,首先打开当当网页,以数据分析为关键字搜索出来页面所有书籍信息。如下图:
本次爬取的结果有11项: (1)每页序号 (2)商品ID (3)标题 (4)书籍价格 (5)书籍原价 (6)书籍折扣 (7)电子书价格 (8)作者 (9)出版时间 (10)出版社 (11)书籍评论量
2、爬取过程
(1)确定url地址
分析网页页面,当输入数据关系关键字以后,点击搜索出来所有书籍网页信息后,将网页拉到最下面可以看到如下图:
可见此网页是翻页的,因此,点击页面2、3、1,提取网页的url如下:
http://search.dangdang.com/?key=%CA%FD%BE%DD%B7%D6%CE%F6&act=input&page_index=2
http://search.dangdang.com/?key=%CA%FD%BE%DD%B7%D6%CE%F6&act=input&page_index=3
http://search.dangdang.com/?key=%CA%FD%BE%DD%B7%D6%CE%F6&act=input&page_index=1
从每页的URL地址信息可以发现每一个页面的地址差异就是page_index的值,所以url地址可以确认为:
http://search.dangdang.com/?key=%CA%FD%BE%DD%B7%D6%CE%F6&act=input&page_index=
page_index的值,我们可以通过循环依次在地址后面添加。
代码如下:
(2)确定爬取节点
有了url地址,就可以使用lxml库来获取网页信息进行解析,得到具体的爬取信息。鼠标右键,点击"检查",如下图:
通过网页html里面的信息对应查找,可以找到li对应每个书籍信息,详细的信息如下图可见:
可以看到书籍名字、价格等信息,然后通过Xpath可以逐一提取出来。详细代码如下:
备注:基于如果想爬取电子书价格,由于有些书籍没有电子书价格,因此爬取出来会错行,务必通过提取书籍页面url,递归再次爬取详情页进行空值处理,避免错行。
(3)保存爬取信息入数据库
此处我们将爬取的信息存储入数据库,就需要先连接数据库和建立数据库表,便于后续存储。数据连接和表建立代码如下:
爬取的数据存储入表中代码如下:
最后必须使用:db.commit() 关闭数据库,不然数据无法正确存储入表。
3、爬取结果
最后,我们将上面的代码整合起来就可以正常爬取。存储的结果截图如下:
小编给大家分享一下如何使用python爬取当当网所有数据分析书籍信息,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
urls = ['http://search.dangdang.com/?key=%CA%FD%BE%DD%B7%D6%CE%F6&act=input&page_index={}'.format(i) for i in range(1,101)]html=requests.get(url,headers=headers)# html.encoding = "utf-8"# print('第一层调用是否返回正常:',html)html.encoding = html.apparent_encoding # 将乱码进行编码selector=etree.HTML(html.text)# print(selector)datas=selector.xpath('//div[@class="con shoplist"]')# print(datas)for data in datas:Classs = data.xpath('div/ul/li/@class') #line1-line60IDDs = data.xpath('div/ul/li/@id') #idtitles = data.xpath('div/ul/li/a/@title') #标题prices = data.xpath('div/ul/li/p[3]/span[1]/text()') #书籍价格source_prices = data.xpath('div/ul/li/p[3]/span[2]/text()') #书籍原价discounts = data.xpath('div/ul/li/p[3]/span[3]/text()') #书籍折扣# dian_prices = data.xpath('div/ul/li/p[3]/a[2]/i/text()') #电子书价格authors = data.xpath('div/ul/li/p[5]/span[1]/a[1]/@title') #作者publish_times = data.xpath('div/ul/li/p[5]/span[2]/text()') #出版时间publishs = data.xpath('div/ul/li/p[5]/span[3]/a/text()') #出版社comments = data.xpath('div/ul/li/p[4]/a/text()') #书籍评论量urls=data.xpath('div/ul/li/a/@href')
db = pymysql.connect(host='localhost', user='root', passwd='库密码', db='库名称:Learn_data', port=3306, charset='utf8')print("数据库连接")cursor = db.cursor()cursor.execute("DROP TABLE IF EXISTS Learn_data.dangdangweb_info_detail")sql = """CREATE TABLE IF not EXISTS Learn_data.dangdangweb_info_detail ( id int auto_increment primary key, Class CHAR(100), IDD CHAR(100), title CHAR(100), price CHAR(100), source_price CHAR(100), discount CHAR(100), author CHAR(100), publish_time CHAR(100), publish CHAR(100), comment CHAR(100), dian_price CHAR(100))DEFAULT CHARSET=utf8"""cursor.execute(sql)cursor.execute("insert into dangdangweb_info_detail (Class,IDD,title,price,source_price,discount,author,publish_time,publish,comment,dian_price)" "values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)", (str(Class),str(IDD),str(title),str(price),str(source_price),str(discount),str(author) ,str(publish_time),str(publish),str(comment),str(dian_price[0])))以上是"如何使用python爬取当当网所有数据分析书籍信息"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!
书籍
数据
信息
网页
价格
地址
数据库
页面
存储
分析
代码
电子
电子书
出版
当当网
数据分析
篇文章
结果
作者
关键
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
多线程同时访问同一条数据库
服务器内遴选
深圳斯贝特网络技术有限公司
数据库删除日志命令
架设服务器模拟器
网络上有软件开发的社区吗
外国论文数据库
我的世界服务器怎么当管理
网络技术专业能做深恶
软件开发画图工具
软件开发专业跨专业
密云区专业性网络技术服务系统
计算机网络安全规则
中原网络安全研究院好考吗
oracle数据库案例
谈谈对计算机网络技术的认识
总服务器故障
软件开发招标代理费
网络技术发展带来的风险和危害
矿池中转服务器搭建教程
来源数据库ISTIC
网络安全公司组织架构图
软件开发北京工资标准
无线网络技术的简介
软件开发商城鲜花工资
惠州数据库培训课程
化学数据库是用来干嘛的
网络电视主页服务器怎么连接
鸿蒙各类软件开发
谈谈对计算机网络技术的认识