如何使用python爬取当当网所有数据分析书籍信息
发表于:2024-09-24 作者:千家信息网编辑
千家信息网最后更新 2024年09月24日,小编给大家分享一下如何使用python爬取当当网所有数据分析书籍信息,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、爬取
千家信息网最后更新 2024年09月24日如何使用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-line60
IDDs = data.xpath('div/ul/li/@id') #id
titles = 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安全错误
数据库的锁怎样保障安全
查询数据库建索引
基因GO分析数据库网站
数据库数据和结构的集合
天津高科技软件开发口碑推荐
网络安全执法检查部署情况
苏州嵌入式软件开发哪里好
我的世界里的中国服务器
新发软件开发
黄石恒泰软件开发有限公司
暑期网络安全图
网络安全防护哪家好
网络安全教师论文题目
计算机网络技术有高数吗
塔城互联网科技怎么样
永康软件开发框架
数据库损坏无法访问
太仓正规网络技术价格
奇迹数据库语句怎么用
hp 服务器系统安装
html 服务器代码
当今世界网络安全
广州安众网络技术有限公司
组态王数据库时间不对
vb二级数据库
教师学习网络技术心得体会
lol服务器故障
frp服务器linux
软件开发主修课程
.网络安全的特征
欧蓓尔软件开发有限公司