Python获取当当平台商品数据信息可视化效果展示

前言

嗨喽,大家好呀~这里是爱看美女的茜茜呐

环境使用:

  • 版 本: python 3.8

  • 编辑器:pycharm 2021.2

  • jupyter notebook

模块使用:

采集

  • requests >>> pip install requests 数据请求

  • csv <表格文件> 内置模块 保存数据

数据分析

  • pandas

  • pyecharts

第三方模块安装:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令

如果出现爆红, 可能是因为 网络连接超时, 可切换国内镜像源,命令如下:

pip install -i https://pypi.doubanio.com/simple/ requests

python资料、源码、教程\福利皆: 点击此处跳转文末名片获取

获取数据

导入模块

# 导入数据请求模块
import requests
# 导入数据解析模块
import parsel
# 导入csv模块
import csv
f = open('data.csv', mode='w', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['书名','评论','推荐','作者','日期','出版社','售价','原价','折扣','电子书','详情页',
])
csv_writer.writeheader()

“”"

  1. 发送请求

    • <Response [200]> 表示请求成功

“”"

for page in range(1, 26):# 请求链接url = f'http://bang.dangdang.com/books/bestsellers/01.00.00.00.00.00-recent7-0-0-1-{page}'# 发送请求response = requests.get(url)

“”"

  1. 获取数据 -> response<响应对象>.text

    获取整个网页的数据内容

  2. 解析数据

    获取具体数据, 我们想要的数据

    当你看到获取的数据, 有这样标签格式, 用css或者xpath是最方便

    css选择器就是根据标签属性提取数据内容

    xpath节点提取

    re正则表达式

“”"

    selector = parsel.Selector(response.text)# 提取所有图书信息, 所对应li标签lis = selector.css('.bang_list_mode li')for li in lis:title = li.css('.name a::attr(title)').get()  # 标题star = li.css('.star a::text').get().replace('条评论', '')  # 评论Tui = li.css('.tuijian::text').get().replace('推荐', '')  # 推荐writer = li.css('.publisher_info a::attr(title)').get()  # 作者date = li.css('.publisher_info span::text').get()  # 日期# get() 提取第一个元素标签完整源码、教程+V:pytho8987获取,加备注“777”publisher = li.css('div:nth-child(6) a::text').get()  # 出版社# publisher = li.css('.publisher_info a::text').getall()[-1] # 出版社price_n = li.css('.price .price_n::text').get()  # 售价price_r = li.css('.price .price_r::text').get()  # 原价price_s = li.css('.price .price_s::text').get().replace('折', '')  # 折扣price_e = li.css('.price_e .price_n::text').get()  # 电子书href = li.css('.name a::attr(href)').get()  # 详情页dit = {'书名': title,'评论': star,'推荐': Tui,'作者': writer,'日期': date,'出版社': publisher,'售价': price_n,'原价': price_r,'折扣': price_s,'电子书': price_e,'详情页': href,}csv_writer.writerow(dit)

数据可视化

import pandas as pd
# 读取csv文件
df = pd.read_csv('data.csv')
# 显示前五行数据
df.head()
Tui_num = df['推荐'].value_counts().to_list()
Tui_type = df['推荐'].value_counts().index.to_list()
Tui_type
# 推荐量占比情况
from pyecharts import options as opts
from pyecharts.charts import Pie
# from pyecharts.faker import Faker  # 随机生成数据模块c = (Pie().add("",[list(z) for z in zip(Tui_type, Tui_num)],center=["35%", "50%"],).set_global_opts(title_opts=opts.TitleOpts(title="推荐占比分布"),legend_opts=opts.LegendOpts(pos_left="15%"),).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
#     .render("pie_position.html")  # 保存本地html文件
)
# Faker.choose() 类目
# Faker.values() 数量
c.render_notebook()
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
c = (Bar().add_xaxis(Tui_type)完整源码、教程+V:pytho8987获取,加备注“777.add_yaxis('百分比', Tui_num, stack="stack1").set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="推荐占比分布"))
#     .render("bar_stack0.html")
)
c.render_notebook()
ZHE_num = df['折扣'].value_counts().to_list()[:10]
ZHE_type = df['折扣'].value_counts().index.to_list()[:10]
from pyecharts import options as opts
from pyecharts.charts import Bar
from pyecharts.faker import Faker
c = (Bar().add_xaxis(ZHE_type).add_yaxis('百分比', ZHE_num, stack="stack1").set_series_opts(label_opts=opts.LabelOpts(is_show=False)).set_global_opts(title_opts=opts.TitleOpts(title="折扣分布"))
#     .render("bar_stack0.html")
)
c.render_notebook()
# 推荐量占比情况
from pyecharts import options as opts
from pyecharts.charts import Pie
# from pyecharts.faker import Faker  # 随机生成数据模块c = (Pie().add("",[list(z) for z in zip(ZHE_type, ZHE_num)],center=["35%", "50%"],完整源码、教程+V:pytho8987获取,加备注“777).set_global_opts(title_opts=opts.TitleOpts(title="折扣分布"),legend_opts=opts.LegendOpts(pos_left="15%"),).set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
#     .render("pie_position.html")  # 保存本地html文件
)
# Faker.choose() 类目
# Faker.values() 数量
c.render_notebook()

尾语

感谢你观看我的文章呐~本次航班到这里就结束啦 🛬

希望本篇文章有对你带来帮助 🎉,有学习到一点知识~

躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

视频前景分割

MobileNetV3 bneck层 配套MobileNetV3视频讲解 super详解 在单继承中 super主要是用来调用父类的方法的 了解torch torch.nn nn是Neural Network的简称&#xff0c;帮助程序员方便执行如下的与神经网络相关的行为&#xff1a; &#xff08;1&#xff09;创建神经网络…

如何使用视频合并分割软件将MP4视频合并分割

现在抖音和微视等短视频平台已经占据了很大的市场和很多的空余时间&#xff0c;这些短视频在拍摄之后不是直接上传的&#xff0c;而是需要先将视频文件剪切合成并添加一些好看的转场特效以及适应场合的音乐&#xff0c;完成之后&#xff0c;再上传网络的&#xff0c;但是对视频…

视频分割修整功哪一款视频剪辑软件更好用?

众所周知&#xff0c;使用传统的视频最终软件只能够对整体进行切割&#xff0c;对于部分不好的地方无法进行细节的修整&#xff0c;会声会影视频软件的诞生&#xff0c;打破了这一模式&#xff0c;真正做到了从细节入手&#xff0c;分帧对视频进行切割修整&#xff0c;不放过任…

视频分割很简单,教你方法三分钟搞定视频剪辑

很多朋友不知道怎么分割视频&#xff0c;今天小编就分享怎么在电脑上分割视频的方法&#xff0c;使用媒体梦工厂操作起来不难&#xff0c;新手小白也能轻松学会&#xff0c;一起接着往下看吧。 第一步&#xff0c;开始剪辑之前&#xff0c;小编准备了多段视频用于演示分割效果&…

图像分割与视频分割方法

图像分割 图像分割介绍1、普通分割2、语义分割3、实例分割&#xff08;instance segmentation&#xff09; 传统的图像分割方法1、基于阈值的图像分割单阈值分割局部阈值分割阈值的选取直方图峰谷法迭代法Otsu阈值分割法类内方差最小方差法最小错误概率分类法基于熵的二值化方法…

视频分割工具

无损分割(截取)视频文件密技 作者&#xff1a;Go on 其实&#xff0c;说 “截取”比较好一些。因为&#xff0c;通常&#xff0c;提出这样问题的人&#xff0c;多数都是需要把一段 视频中的一小段截取出来做为已用。 视频的截取&#xff0c;分为两种。一种是另存&#xff0c;…

运维小白必学篇之基础篇第十三集:网络概述中继实验

网络概述中继实验 实验作业&#xff08;主机名为自己的名字&#xff09;&#xff1a; 1、搭建中继环境&#xff0c;要求如下&#xff1a; 网络要求&#xff1a; 内网&#xff1a;192.168.50.50 网关&#xff1a;192.168.50.254 192.168.60.254 外网&#xff1a;192.168.60.60 主…

分享QQ空间等功能

https://blog.csdn.net/weixin_41187842/article/details/81502700 注意&#xff1a;仅适用于普通原生html、JS项目 引入JS文件 with(document) 0[(getElementsByTagName(head)[0] || body).appendChild(createElement(script)).src http://bdimg.share.baidu.com/static/api/…

会员获取积分的方式有哪些?

积分作为商家引导顾客二次消费的一种手段&#xff0c;已经被各种行业深度挖掘利用&#xff0c;像我们熟知的购物平台、手机运营商都在使用积分规则&#xff0c;还有很多商家给积分换了名字&#xff0c;实质上也是通过积分推动顾客下单。 实体店也可以借鉴积分的这些用法&#x…

VS2010 .net4.0 登录QQ 获取QQ空间日志 右键选中直接打开日志 免积分 源码下载

代码有一部分是原来写的 最近翻代码 看到了 就改了一下 CSDN上传源码 上传了几次都没 成功 郁闷 不知道怎么回事 上传不了 想要的留 邮箱 或加群77877965 下载地址在下面 演示地址http://download.csdn.net/detail/xzh1995/6567829 源码地址http://download.csdn.net/deta…

QQ的分享到空间

使用的sdk版本&#xff1a; V2.2.2&#xff08;发布日期&#xff1a;2014.3.17&#xff09; 布局文件&#xff1a; <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"…

会员积分

将原有积分进行备份&#xff0c;然后赠送每位会员500积分&#xff0c;编写程序输出积分情况。 package javadome3;import java.util.Scanner;public class Text4 {public static void main(String[] args) {Scanner input new Scanner(System.in);System.out.println("请…

QQ空间密码和权限

QQ空间密码和权限 | 米站互联 | 米站互联网站&#xff0c;专业知识资讯。 相册查看 第一步确保你已经加上别人的QQ号&#xff0c;不然会出现主人设置了权限&#xff0c;您可通过以下方式访问。 去网上或者腾讯官方下载QQ PC版 腾讯软件官方下载地址网页&#xff1a;要啥有啥…

从JMeter Cookie管理器开始,轻松掌握接口测试技能!

目录 【前言】 【1. 添加Cookie管理器】 【2. 登录接口获取Cookie】 【3. Cookie关联】 【4. 动态修改Cookie值】 【结论】 【附录】 【前言】 在接口测试中&#xff0c;我们经常需要对Cookie进行处理和关联&#xff0c;来模拟用户在浏览器中的操作。特别是在登录和权限…

【CSS 04】Zoro 外边距 外边距合并 内边距 内容高度与宽度 框模型 轮廓

CSS 说在前面外边距 margin外边距合并 margin_collapse内边距 padding高度与宽度 dimension框&#xff08;盒子&#xff09;模型 boxmodel轮廓 outline 说在前面 最近发现一个有趣的事情&#xff0c;就是CSDN会把我写在【】中的Zoro当做文章主要技术关键词&#xff0c;尽管我在…

白盒测试、黑盒测试、灰盒测试

根据被测对象的不同&#xff0c;软件测试可以分为白盒测试、黑盒测试、灰盒测试三种方式。那么&#xff0c;这三种测试测试方式具体是如何运行的&#xff1f;各有什么特点&#xff1f;下面&#xff0c;跟着小厚一起了解一下吧&#xff01; 01 白盒测试 ●概念&#xff1a; ➢…

公司注册公司的经营范围怎么填

现在的公司还真不少&#xff0c;似乎一家企业还是店铺都要加上公司这个名号才会变得高大上一样&#xff0c;而在郑州创立公司少不了要办理这些业务&#xff0c;填写相应的注册经营范围&#xff0c;可能大家这样子听起来觉得简单&#xff0c;但事实上实施起来并不是那么一回事儿…

Neo4j安装配置教程

目录结构 前言Neoj4简介安装JDKNeo4j安装步骤Neo4j下载解压Neo4j压缩包配置环境变量启动Neo4j执行命令报错&#xff0c;报错信息如下&#xff1a; 启动Neo4j&#xff0c;再次测试浏览器访问Neo4j参考链接 前言 安装所需配件网盘一键下载。以下描述中&#xff0c;官网下载均有描…

填万能经营范围模板,避开办理营业执照经营范围的坑

常见行业经营范围模板&#xff01;来挑挑看吧&#xff01;&#xff08;附万能经营范围模板&#xff09; 注册企业时有没有常常遇到经营范围怎么选&#xff1f;哪些行业是行政许可项目&#xff1f;哪些可以“先照后证”&#xff1f; 现在工商登记对经营范围应该怎么写已经没…

中国十大进口母婴店热销品牌排名前10

根据2020年中国品牌网统计的十大进口母婴品牌排名,由优家宝贝整理后发布。分别是以下十个进口母婴品牌,根据热度进行的名次排行榜。 排在Top1的是贝亲,它创始于1957年,2002年正式进入中国市场,它秉承爱的理念,以“放心、安全、信赖”作为奠定品牌价值的基石。它一直致力于为消费…