爬虫学习案例8

爬取京东评论信息

采用DrissionPage自动化工具采集,感觉比Selenium工具好,真香。

安装第三方库

powershell 复制代码
pip install DrissionPage
pip install pandas
pip install pyecharts
pip install jieba
pip install wordcloud

1.安装DrissionPage库

DrissionPage安装博客

2.爬取评论信息到csv文件

powershell 复制代码
from  DrissionPage import ChromiumPage
import csv
# 打开浏览器
dp = ChromiumPage()
# 监听数据包
dp.listen.start('https://api.m.jd.com/?appid=item-v3&functionId=pc_club_productPageComments&client=pc')
dp.get("https://item.jd.com/100058720776.html#comment")

f = open('jd_comments.csv', 'w', encoding='utf-8-sig', newline='')
csv_writer = csv.DictWriter(f,['昵称','地区','产品','评论时间','评论内容'])
csv_writer.writeheader()
# 循环采集前20页评论数据
for page in range(1,21):
    print(f"正在采集第{page}页评论数据")
    dp.scroll.to_bottom()
    resp = dp.listen.wait()
    json_data = resp.response.body
    print(json_data)
    print("-------------------------")
    commets = json_data['comments']
    for comment_obj in commets:
        dit = {
            '昵称': comment_obj['nickname'],
            '地区': comment_obj['location'],
            '产品': comment_obj['productColor'],
            '评论时间': comment_obj['creationTime'],
            '评论内容': comment_obj['content'],
        }
        print(dit)
        csv_writer.writerow(dit)
    # 点击下一页按钮
    dp.ele('css:.ui-pager-next').click()

如需获取其他商品评论,修改监听数据包,dp.listen.start,dp.get

dp.listen.start自己搜索,抓包请求

dp.get点击下一页,复制浏览器url即可

3.制作词云图

效果png图片:

新建一个py文件

python 复制代码
# 词云图
import jieba
import wordcloud
import pandas as pd
df = pd.read_csv('jd_comments.csv')
content = ''.join([i for i in df['评论内容']])
# print(content)
# 结巴分词处理
string = ''.join(jieba.lcut(content))
# 词云图配置
wc = wordcloud.WordCloud(
    background_color='white',
    width=1000,
    height=700,
    font_path='msyhbd.ttc',
    stopwords={'了','啊','的','都'}
)
# 导入词汇
wc.generate(string)
# 写出图片
wc.to_file('jd_wordcloud.png')

4.制作饼状图可视化

饼状图官网例子

新建一个py文件

python 复制代码
# 饼状图可视化
from pyecharts import options as opts
from pyecharts.charts import Pie
import  pandas as pd
df = pd.read_csv('jd_comments.csv')
x = df['地区'].value_counts().index.to_list()
y = df['地区'].value_counts().to_list()
print(x)
print(y)
c = (
    Pie()
    .add(
        "",
        [
            list(z)
            for z in zip(
                x,
                y,
            )
        ],
        center=["40%", "50%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="京东-黑丝区域购买饼状图"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
    .render("pie_scroll_legend.html")
)

x = df['产品'].value_counts().index.to_list()
y = df['产品'].value_counts().to_list()
print(x)
print(y)
c = (
    Pie()
    .add(
        "",
        [
            list(z)
            for z in zip(
                x,
                y,
            )
        ],
        center=["40%", "50%"],
    )
    .set_global_opts(
        title_opts=opts.TitleOpts(title="京东-黑丝产品受欢迎饼状图"),
        legend_opts=opts.LegendOpts(type_="scroll", pos_left="80%", orient="vertical"),
    )
    .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
    .render("京东-黑丝产品受欢迎饼状图.html")
)

分析后饼状图效果:性感黑丝最受欢迎,嘿嘿。

参考资料:
bilibili

相关推荐
海兰19 分钟前
【Kafka学习2】Apache Kafka 典型应用场景
学习·kafka·apache
边境悍匪42 分钟前
蜗牛学苑 Java 学习 Day23|SpringBoot 思维导图复盘
学习
xx~t1 小时前
嵌入式学习22
数据结构·学习·算法·排序算法
梅孔立1 小时前
Docker 部署 Python3\.11 Flask爬虫项目 终极稳定教程(解决线程报错/挂载失效/pip报错)
爬虫·docker·flask
Linux-lucky9 小时前
21-Linux学习之旅之HTTPS和安全加固
linux·运维·学习·ubuntu·https
学运维的Kysan11 小时前
暑假运维学习打卡第二十六天8.17
学习
dear_bi_MyOnly12 小时前
AI人工智能分类识别——机器如何学习
人工智能·学习·分类
启雀AI14 小时前
培训平台移动端离线学习方案设计与实现:视频缓存、断点续传与进度同步的工程实践
android·学习·缓存·音视频·企业lms
傻啦嘿哟15 小时前
猫眼电影TOP100爬虫:Requests+正则表达式实战
爬虫·正则表达式
MgArcher15 小时前
抖音a_bogus参数逆向实战:JSVMP环境模拟与Hook技术(2025最新)
javascript·爬虫·python