当当图书网数据采集分析:10万条数据的深入洞察

基于搜索结果,我将为您提供一个关于当当图书网数据采集的文章框架,假设我们已经有了10万条数据的采集结果。请注意,由于没有具体的数据文件,以下内容将是一个示例性的框架,您可以根据实际采集到的数据进行填充和调整。


当当图书网数据采集分析:10万条数据的深入洞察

引言

在数字化时代,数据成为了理解和预测市场趋势的关键。本文将展示如何通过数据采集技术从当当图书网获取10万条图书数据,并对其进行分析,以揭示图书市场的一些有趣现象和趋势。

数据采集

采集工具与方法

  • 使用Python语言结合requests和lxml库进行网络爬虫开发。
  • 通过XPath表达式精确提取图书信息,包括书名、作者、单价、出版日期、出版社和书籍简介。

数据采集过程

  1. 确定采集目标和关键字。
  2. 发送HTTP请求获取网页内容。
  3. 解析网页,提取所需数据。
  4. 遍历多页以获取更多信息。
  5. 异常处理和数据存储。

数据处理

数据清洗

  • 使用pandas库进行数据清洗,移除不完整或错误的记录。
  • 转换数据类型,确保数据的一致性和准确性。

数据存储

  • 将清洗后的数据存储至Excel文件和数据库中,以便进一步分析。

数据分析

书籍价格分布

  • 分析不同价格区间的图书数量,揭示市场的价格偏好。

出版社影响力

  • 统计各出版社的图书数量,评估市场影响力。

作者贡献度

  • 计算每位作者的图书数量,识别市场上的热门作者。

评论分析

  • 分析图书评论的分布情况,了解读者的反馈和偏好。

数据可视化

价格分布图

  • 柱状图展示不同价格区间的图书数量。

出版社排名图

  • 折线图展示出版社的图书数量排名。

作者出书数量图

  • 条形图展示作者的出书数量。

评论热力图

  • 热力图展示图书评论的分布情况。

结论

通过对10万条当当图书网数据的采集和分析,我们能够深入理解当前图书市场的动态,为出版社、作者和读者提供有价值的市场洞察。


在这里插入图片描述

完整代码

def get_page_tree(url):from requests.adapters import HTTPAdapterpage = requests.session()page.mount('http://',HTTPAdapter(max_retries=80))page.mount('https://',HTTPAdapter(max_retries=80))page = page.request("GET",url=url,timeout=120)print('page ' , page ,page.text)tree = etree.HTML(page.text)return tree# xpath语法 获取li对象 因为li标签不只一个 所以用lis
def get_lis(tree):lis = tree.xpath('//*[@id="search_nature_rg"]/ul/li')return lisdef deal_save(url , pressN,page_index):global sumglobal rowtree = get_page_tree(url)# 获取到lis对象lis = get_lis(tree)# time.sleep(random.randint(1,3))print("正在爬取...", url)# 遍历lis 返回index下标和itemtry:for c, i in enumerate(lis):# 根据xpath规则提取图书标题name = i.xpath('a/@title')name = str(name[0])name = name.strip()# 根据xpath规则提取图书描述desc = i.xpath('p[2]/text()')# 根据xpath规则提取图书价格和该书电子书的价格price_normal = i.xpath('p[3]/span[1]/text()')  # 纸质书的价格price_normal = price_normal[0]price_net = i.xpath('p[3]/a/i/text()')  # 电子书的价格# 根据xpath规则提取图书的作者author = i.xpath('p[@class="search_book_author"]/span[1]/a/text()')  # 作者if len(author) == 0:author = '没有作者'else:author = author[0]# 根据xpath规则提取图书出版时间press_time = i.xpath('p[@class="search_book_author"]/span[2]/text()')if len(press_time) == 0:press_time = '出版时间为空'else:press_time = press_time[0][2:]# 根据xpath规则提取图书出版社press = i.xpath('p[@class="search_book_author"]/span[3]/a/text()')if len(press) == 0:press = '出版社为空'else:press = press[0]if len(desc) != 0:desc = desc[0]else:desc = "null"if len(price_net) != 0:price_net = price_net[0]else:price_net = "暂无电子书"sum += 1# 输出信息print('第{}页--第{}条数据--累计爬取{}条:'.format(page_index, c, sum))print('书名:《{}》'.format(name))print('图书价格:{}'.format(price_normal))print('电子书价格:{}'.format(price_net))print('作者:{}'.format(author))print('出版社:{}'.format(press))print('出版时间:{}'.format(press_time))print('*' * 25)time.sleep(0.1)# 保存信息sheet.write(row, 0, name)sheet.write(row, 1, desc)sheet.write(row, 2 , price_normal)sheet.write(row, 3 , price_net)sheet.write(row, 4 , author)sheet.write(row, 5 , press_time)sheet.write(row, 6 , press)row = row + 1except Exception as e:print(e)# 主要爬虫程序  遍历给定出版社 所有的图书
def start (url , pressN):# 获取page的etreenew_url = url.format(press_name, 1)tree = get_page_tree(new_url)# 获取该出版社展示图书总页数total = tree.xpath('//*[@id="12810"]/div[5]/div[2]/div/ul/li[9]/a/text()')[0]print('{}一共{}页'.format(pressN,total))# 全局变量的sum 总数global sum# time.sleep(2)# 线程保存的数组threads = [ ]# 遍历所有页面 从1到totalfor page_index in range(1, int(total) + 1):time.sleep(0.2)temp_url = url.format(pressN,page_index)temp_t = Thread(target=deal_save , args = ( temp_url,press_name,page_index, ))threads.append(temp_t)temp_t.start()for index, t in enumerate(threads):t.join()if __name__ == '__main__':# 通过file读取所有出版社 保存为list数组s = time.time()press = []with open('Press.txt' , 'r' , encoding='utf-8') as f :a = f.read()f.close()# 拆封数据press = a.split('\n')url = 'http://search.dangdang.com/?key={}&page_index={}'# 遍历所有出版社for press_name in press:start(url , press_name)print('正在采集{}'.format(press_name))end = time.time()book.save('当当网图书汇总.xlsx')print(  '共花费:' ,str((end-s) ) , 's ,共计爬取:{}条'.format(sum))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/821239.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

1.2MHz,固定频率白光LED驱动器

一、产品概述 TX6216是一款升压转换器,设计用于通过单节锂离子电池驱动多达7个串联的白光LED。 TX6216采用电流模式,固定频率架构来调节LED电流,LED电流通过外部电流检测电阻测量。其低104mV反馈电压可降低功率损耗并提高效率。 TX6216具有…

懒人建站工具过时了?试试这6个WordPress主题,1小时实现高效建站

懒人建站工具,凭借简单易用、快速上手和个性化定制的特点,为不熟悉代码和程序的人提供了搭建美观实用网站的便捷途径。无需专业的前端开发知识,无需雇佣专业开发人员,用户便能轻松实现网站搭建,满足个人或企业需求。懒…

13.C++常用的算法_查找算法

文章目录 遍历算法1. adjacent_find代码工程运行结果 2. binary_search()代码工程运行结果 3. count()代码工程运行结果 4. count_if()代码工程运行结果 遍历算法 1. adjacent_find 代码工程 查找相邻元素是否存在,不存在返回容器最后位置的迭代器#define _CRT_SECURE_NO_WA…

Rustdesk如何编译代码实现安装后,不会在右下角出现托盘图标

环境: Rustdesk1.1.9 问题描述: Rustdesk如何编译代码实现安装后,不会在右下角出现托盘图标 解决方案: 安装后只有自定义进程图标 详细方案,有需要私聊

2023年城市交通系统客流量预测算法赛

ref: 2023中国华录杯数据湖算法大赛 该比赛马上就要结束,0424日答辩。获得了前六的名次,本次比赛给我的感觉就是一言难尽呐。答辩结束再补充吧。

PySpark预计算ClickHouse Bitmap实践

1. 背景 ClickHouse全称是Click Stream,Data WareHouse,是一款高性能的OLAP数据库,既使用了ROLAP模型,又拥有着比肩MOLAP的性能。我们可以用ClickHouse用来做分析平台快速出数。其中的bitmap结构方便我们对人群进行交并。Bitmap位…

中国新质生产力水平(原始+测算+结果)-企业和各省数据集

新质生产力是一个至少涵盖科技、绿色和数字三大方面的集成体,对其评价测度需要依托多属性综合评价方法。文章构建了包含3个一级指标、6个二级指标和18个三级指标的综合体系,采用改进的熵权-TOPSIS方法对指标进行赋权,从而得到全国新质生产力发…

rhce.定时任务和延迟任务项目

一 . 在系统中设定延迟任务要求如下: 在系统中建立 easylee 用户,设定其密码为 easylee 延迟任务由 root 用户建立 要求在 5 小时后备份系统中的用户信息文件到/backup中 确保延迟任务是使用非交互模式建立 确保系统中只有 root 用户和easylee用户可以…

Spring学习(二)

图解: 2.核心容器总结 2.2.1 容器相关 BeanFactory是IoC容器的顶层接口,初始化BeanFactory对象时,加载的bean延迟加载 ApplicationContext接口是Spring容器的核心接口,初始化时bean立即加载 ApplicationContext接口提供基础的be…

阿里云优惠券种类介绍及领取教程详解

随着互联网技术的快速发展,越来越多的企业和个人开始将业务和数据迁移到云端。阿里云作为国内领先的云服务提供商,为广大用户提供了丰富多样的云产品和服务。为了回馈用户,阿里云经常推出各种优惠活动,其中优惠券就是其中一种常见…

设计编程网站集:动物,昆虫,蚂蚁养殖笔记

入门指南 区分白蚁与蚂蚁 日常生活中,人们常常会把白蚁与蚂蚁搞混淆,其实这两者是有很大区别的,养殖方式差别也很大。白蚁主要食用木质纤维,会给家庭房屋带来较大危害,而蚂蚁主要采食甜食和蛋白质类食物,不…

【Linux】服务器硬件及RAID配置实战

目录 一、服务器 1.服务器 2.查看服务器信息 二、RAID 磁盘阵列 三、软RAID的创建和使用 1.添加硬盘,fdisk分区,分区类型ID设置为 fd 2.使用mdadm创建软raid 3.格式化 4.挂载使用 5.mdadm 一、服务器 1.服务器 分类机架式居多 塔…

ubuntu安装vulnhub

文章目录 1.下载docker2.申请加速器3.安装pip4.安装docker-compose5.安装git6.安装vulnhub文件7.运行vulhub中的靶机TypeError: kwargs_from_env() got an unexpected keyword argument ssl_version报错8.tomcat-----CVE-2017-12615(任意文件上传)1.访问192.168.9.101:80802.bp…

【解读】《中华人民共和国网络安全法》:所有IT从业者都应知应懂

随着网络的快速发展,当今社会存在的网络安全问题也是接踵而来:网络入侵、网络攻击等非法活动威胁信息安全;非法获取公民信息、侵犯知识产权、损害公民合法利益;宣扬恐怖主义、极端主义,严重危害国家安全和社会公共利益…

彻底解决 pyshark 库 TShark not found

使用 python 运行 github 某个项目处理 pcap 包时遇到如下报错: (先安装了 pyshark 库) pyshark.tshark.tshark.TSharkNotFoundException: TShark not found. Try adding its location to the configuration file. Searched these paths: […

微博聚类文本分析和可视化

本文使用python抓取微博数据并对微博文本分析和可视化,LDA(树图)、关系图、词云、时间趋势(折线图)、热度地图、词典情感分析(饼图和3D柱状图)、词向量神经网络情感分析、tfidf聚类、词向量聚类…

前端layui自定义图标的简单使用

iconfont-阿里巴巴矢量图标库 2. 3. 4.追加新图标 5.文件复制追加新图标 如果图标不是一次性下载完成的,后续需要追加的话必须重新建立一个新文件夹然后重新引入就行

(踩坑)Please refer to 异常和Error creating bean with name 异常

一、Please refer to 异常 如图所示,在使用maven构建项目的时候,如果提示该错误,则可能是xml配置文件有问题或者测试类等。但是没有明确的异常信息,所以做以下小改动,可以查看异常信息。 在IDEA工具中,打…

数学建模--深入剖析线性规划(模型全方位解读+代码分析)

1.简介 (1)线性规划三要素 (2)模型适用赛题 2.典例讲解 (1)问题分析 目标函数是净收益尽可能大,风险尽可能小; 约束条件是交易费的分段函数,以及每一笔投资都是非负数&am…

如何使用Fiddler做弱网测试?

1、打开Fiddler工具,点击Rules-Customize Rules 2、打开了一个配置文件,ctrlF搜索Delay sends by 300ms per KB uploaded, 3、修改发送延迟和下载延迟的时间,可以修改的大一些,越大延迟越久,修改后保存 4、…