吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5480|回复: 51
收起左侧

[Python 原创] python新人,写了一个爬取jd数据的爬虫,并做了数据分析生成饼图,大佬勿喷。

  [复制链接]
Allenxu520 发表于 2023-3-18 09:02
python新人报道自己这点水平,简单写了个python爬虫,并且进行数据分析后绘制为了饼图。框架,需要的可以自己更改。


[Python] 纯文本查看 复制代码
# -*- encoding: utf-8 -*-
import time
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from pyecharts.charts import Pie


if __name__ == "__main__":
    word = input("请输入要爬取的商品名称")
    page_size = int(input("请输入要爬取的页数"))
    # 创建一个浏览器驱动器的对象
    driver = webdriver.Edge()
    # 通过驱动器去打开京东的首页
    driver.get("https://www.jd.com")
    time.sleep(2)
    # 找到搜索框
    input_box = driver.find_element(By.ID, "key")
    input_box.send_keys(word)
    input_box.send_keys(Keys.ENTER)
    # html = driver.page_source
    # df = pd.read_html(html)[0]
    names, prices, commits, shops = [], [], [], []
    for i in range(page_size):
        # 将滚动条拖到最下面
        driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')
        # 停顿3秒,等待数据刷新
        time.sleep(3)
        good_list = driver.find_elements(By.XPATH, '//*[@id="J_goodsList"]/ul/li')
        # 便利每页所需爬取的内容
        for good in good_list:
            price = good.find_element(By.CLASS_NAME, "p-price").text,
            name = good.find_element(By.CLASS_NAME, "p-name").text,
            commit = good.find_element(By.CLASS_NAME, "p-commit").text,
            shop = good.find_element(By.CLASS_NAME, "p-shop").text
            # 将爬取的数据赋值给空列表中
            names.append(name[0])
            prices.append(price[0])
            commits.append(commit[0])
            shops.append(shop)

        driver.find_element(By.CLASS_NAME, "pn-prev").click()
        # 停顿3秒,等待数据刷新
        time.sleep(3)
    df = pd.DataFrame(
        {
            "价格": prices,
            "标题": names,
            "评论数": commits,
            "出版社": shops
        })
    df.to_excel("1.xlsx")

    # 按数量统计出前10名的数据
    sort_data = df.groupby("出版社").size().sort_values(ascending=True).head(10)

    # 进行数据治理。将数据按图表所需要的数据进行融合,重要!!!变为这种格式:[‘xx_xx’,1]
    data = [list(z) for z in zip(sort_data.index.tolist(),
                                 sort_data.values.tolist())]
    # print(data)
    # 绘制饼图
    pip = Pie()
    pip.add(series_name="排名",
            data_pair=data)

    pip.render(path="P_render.html")
image.png
image.png

免费评分

参与人数 16吾爱币 +20 热心值 +10 收起 理由
zhy5252 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
521zlx + 1 + 1 值得我这个小小白值得学习
ToT鱼 + 2 感谢发布原创作品,吾爱破解论坛因你更精彩!
ilcxyz + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
sinlwq + 1 谢谢@Thanks!
single_cat + 1 用心讨论,共获提升!
IMRE + 1 + 1 用心讨论,共获提升!
仓鼠666 + 1 + 1 谢谢@Thanks!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
ovohuang + 1 + 1 鼓励转贴优秀软件安全工具和文档!
BO666 + 1 我很赞同!
东莞洪世贤 + 1 + 1 热心回复!
wjl0 + 1 谢谢@Thanks!
wjy213 + 1 我很赞同!
echoaku + 1 + 1 我很赞同!
threeWHO + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

VIZZION1996 发表于 2023-3-18 09:37
我来试试看
头像被屏蔽
fei5788 发表于 2023-3-27 12:01
zheqi1314 发表于 2023-3-18 09:39
fuermosi 发表于 2023-3-18 09:41
厉害,希望再接再厉
muyan888 发表于 2023-3-18 09:54
厉害,会了这个这可以干很多事
南极. 发表于 2023-3-18 10:01
厉害了 学习一下
echoaku 发表于 2023-3-18 10:02
支持一下,还是不错的
threeWHO 发表于 2023-3-18 10:05
楼主厉害,向楼主的实践精神学习
QQ283839439 发表于 2023-3-18 10:16
楼主威武,,美团可以使用吗?
juanyi 发表于 2023-3-18 10:39
有没有爬淘宝的 他们要登录…
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 17:56

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表