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

news2024/12/24 22:04:54

前言

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

环境使用:

  • 版 本: 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://www.coloradmin.cn/o/611672.html

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

相关文章

图书购物商城 图书后台管理系统

图书购物商城 图书后台管理系统 这个图书购物商城系统是一个基于JSP、Servlet和MySQL技术开发的综合性系统&#xff0c;它包括前台和后台功能。该系统旨在为用户提供一个便捷的购书平台&#xff0c;同时为管理员提供管理图书和订单的功能。 前台部分是用户使用的界面&#xf…

MQTT与EMQ

文章目录 1 MQTT协议与EMQ中间件1.1 物联网消息协议MQTT1.1.1 什么是MQTT1.1.2 MQTT相关概念1.1.3 消息服务质量QoS——信息的可靠投递1.1.3.1 QoS0——消息服务质量为0&#xff0c;消息发送至多一次1.1.3.2 QoS1——消息发送至少一次1.1.3.3 QoS2——消息发送仅一次1.1.3.4 不…

app渗透-常见问题及绕过

app渗透-常见问题及绕过 6.app常见问题和绕过前言6.1反代理操作前言6.1.1判断6.1.2实例演示-探探6.1.3绕过1-r0capture6.1.4绕过2-proxifier6.1.5绕过3-小黄鸟 6.2证书校验前言6.2.1判断6.2.2浏览器校验和解决6.2.3桡过证书单项校验-xp框架6.2.3绕过证书双向校验 6.app常见问题…

TongWeb8适配JakartaEE应用

历史&#xff1a; 2017年 Oracle将Java EE&#xff08;Java SE还自己保留&#xff09;交给开源组织&#xff0c;Eclipse基金会接手。但Oracle不允许开源组织使用Java名号&#xff0c;所以Jakarta EE名称于2018.02.26应运而生。 版本 发布日期 焦点说明 Java EE 8 2017.08 …

30天网络安全从入门到精通?

前言 毫无疑问&#xff0c;网络安全是当下最具潜力的编程方向之一。对于许多未曾涉足计算机编程的领域「小白」来说&#xff0c;深入地掌握网络安全看似是一件十分困难的事。至于一个月能不能学会网络安全&#xff0c;这个要看个人&#xff0c;对于时间管理不是很高的&#xf…

花3个月面过阿里测开岗,拿个25K不过分吧?

计算机专业&#xff0c;代码能力一般&#xff0c;之前有过两段实习以及一个学校项目经历。第一份实习是大二暑期在深圳的一家互联网公司做前端开发&#xff0c;第二份实习由于大三暑假回国的时间比较短&#xff08;小于两个月&#xff09;&#xff0c;于是找的实习是在一家初创…

南山村又一个旧改项目即将开工建设,桂庙新村城市更新单元。

5月22日&#xff0c;深圳市南山区城市更新和土地整备局发布关于粤海街道桂庙新村城市更新单元项目实施主体确认的公示。 根据公告&#xff0c;该项目实施方式为与权利主体签订搬迁补偿协议&#xff0c;补偿方式为产权置换和货币补偿相结合&#xff0c;已完成100%签约&#xff0…

【Linux】Nginx编译安装及系统服务添加

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 Nginx 一、关于 NginxNginx和Apache的差异Apache的优势Nginx的优势 二. 编译安装Nginx服务1.关闭防火墙2.安装依赖包3.创建运行用户、组4.编译安装Nginx5.检查、启动、重启、…

mac电脑git clone项目时报错证书过期和权限被拒绝

mac电脑使用git clone命令克隆项目时&#xff0c;一开始一直提示证书过期 SSL certificate problem: certificate has expired 执行以下代码关掉验证后&#xff0c;解决了这个问题 找到git目录 Git\git-cmd输入命令跳转到bin目录&#xff0c;cd bin输入命令运行git.exe执行关…

2023网安164道面试题(附答案)

最近有不少小伙伴跑来咨询&#xff1a; 想找网络安全工作&#xff0c;应该要怎么进行技术面试准备&#xff1f;工作不到 2 年&#xff0c;想跳槽看下机会&#xff0c;有没有相关的面试题呢&#xff1f; 为了更好地帮助大家高薪就业&#xff0c;今天就给大家分享两份网络安全工…

回归模型评价指标R2_score

搞清楚R2_score计算之前&#xff0c;我们还需要了解几个统计学概念。 若用 y i y_i yi​表示真实的观测值&#xff0c;用 y ˉ \bar{y} yˉ​表示真实观测值的平均值&#xff0c;用 y i ^ \hat{y_i} yi​^​表示预测值,则&#xff1a; 回归平方和&#xff1a;SSR 即估计值与…

chatgpt赋能python:Python后退对SEO的影响

Python后退对SEO的影响 Python作为一种流行的编程语言&#xff0c;在各种应用场景中都有着广泛的应用。但是&#xff0c;对于一些需要考虑SEO优化的网站来说&#xff0c;Python后退往往被认为是一个不利因素。那么&#xff0c;Python后退对SEO究竟有什么影响&#xff0c;我们来…

GS2972(3G-SDI)视频输出驱动调试

GS2972视频输出调试 GS2972的硬件初始化GS2972的驱动时序GS2972的驱动RTL代码GS2972输出彩条GS2972驱动易出bug GS2972的硬件初始化 GS2972是HD-SDI/3G-SDI视频、音频串化器。其使用非常简单&#xff0c;但是要想把该芯片驱动起来&#xff0c;真心不容易。需要了解相关视频标准…

如何打造微信私域?

现如今&#xff0c;微信已经从社交通讯软件&#xff0c;慢慢被默认为常规办公软件&#xff0c;工作沟通、业务洽谈、网络会议等都在微信上进行&#xff0c;完全变成职场首选的社交工具。 然而&#xff0c;由于微信平台的限制&#xff0c;很多企业在微信私域营销方面遇到了很多…

2023年最佳AI文案神器Top 8

无论你是否准备好&#xff0c;它们都已经来了。如果你知道如何使用它们&#xff0c;AI文案工具可以成为你的新朋友。 现在AI文案工具无处不在&#xff0c;眼花缭乱&#xff0c;从内容生成器到电子商务聊天机器人。原因很简单&#xff1a;AI可以节省大量时间和金钱。这是我们都喜…

2018 年一月联考逻辑真题

2018 年一月联考逻辑真题 三、逻辑推理&#xff1a;第 26-55 小题&#xff0c;每小题 2 分&#xff0c;共 60 分。下列每題给出的A.、 B.、C.、D.五个选项中&#xff0c;只有一项是符合试题要求的。请在答题卡上将所选项的字母涂黑。 真题&#xff08;2018-26&#xff09;-翻译…

5年软件测试工程师工作感悟,谁还能“点点点”一辈子呢?

经常都有人问我软件测试前景怎么样&#xff0c;每年也都帮助很多朋友做职业分析和学习规划&#xff0c;也很欣慰能够通过自己的努力帮到一些人进入到大厂。 2023年软件测试行业的发展现状以及未来的前景趋势 最近很多测试人在找工作的时候&#xff0c;明显的会发现功能测试很…

JAVA开发(神乎其神的区块链技术之数据上链)

这是我第二遍写关于区块链的博文&#xff0c;前一篇文章《神乎其神的区块链概念和技术》主要介绍区块链的由来和基本概念。因为博主最近在做一个区块链项目&#xff0c;所以有时候也遇到一些概念性的知识需要去理解&#xff0c;比如数据的上链。谈到数据上链&#xff0c;我们先…

【Linux】Nginx 优化与防盗链

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 Nginx 优化与防盗链 一、隐藏版本号方法一&#xff1a;修改配置文件方式方法二&#xff1a;修改源码文件&#xff0c;重新编译安装 二、修改用户与组三、缓存时间四、日志切割…

前端自动化测试基础概念与方案

测试的类型 常见的测试类型主要有以下几种&#xff1a; 单元测试&#xff1a;验证独立单元是否能正常工作集成测试&#xff1a;验证多个单元协同工作端到端测试&#xff1a;从用户角度以机器的方式在真实浏览器环境验证应用交互快照测试&#xff1a;验证程序的UI变化 单元测…