【Python实战】Python采集某评论区内容

前言

我们知道在这个互联网时代,评论已经在我们的生活到处可见,评论区里面的信息是一个非常有趣和有争议的地方。我们今天,就来获取某技术平台的评论,和大家分享一下,我获取数据的过程,也是一个尝试的过程。

发送请求

我们首先,确定我们要获取哪一个文章下面的评论区。我们先使用开发者工具,定位到我们要的数据。

QQ图片20230422182804.png

我们通过数据抓取,我们发现,这个平台的评论区数据,放在了一个叫getlist数据包里面了。

QQ图片20230422183157.png

我们就不难明白,我们只要请求这个url,在传一个关于文章的参数,我们就能获取到我们想要的数据。而且,我们发现,这个是post请求。我们先按正常思路写代码。

import requests

url = 'https://xie.infoq.cn/public/v1/comment/getList'

headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36',
}
res = requests.post(url,headers=headers)

print(res)

我们发现返回了一个<Response [451]>的值,我们可能就是少穿了参数,我们接下来,把参数加上试试。

data = {
    'id': "594899140323389440",
    'score': '1682043841339',# 1681968121323
    'size': '100',
}

我们发现还是不行,所以,我们想到了,这个要加一个防盗链。我们把相应的参数传进去,我们再来看看效果。

headers ={
    'Host': 'xie.infoq.cn',
    'Origin': 'https://xie.infoq.cn',
    'Referer': 'https://xie.infoq.cn/article/a5f16dffb45139cba72691c29',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36',
}
res = requests.post(url,data = data,headers=headers)

我们发现虽然返回了<Response [200]>,但是,我们还是拿不到数据,我们看看服务器给我们返回了什么样子的数值。

{"code":-1,"data":{},"error":{"code":-2005,"msg":"ID不能为空"},"extra":{"cost":0.000170465,"request-id":"7c1dc236c95aceb9e56da271b056be88@2@infoq"}}

它提示我们"msg":"ID不能为空",说明我们data传入传错了。

不难看出,就是我们的文章id没有传进去,可能是我们传递的参数方式错了,我们这里要注意,要用json格式传参。正确的请求方式如下:

res = requests.post(url,json = data,headers=headers)

我们发现,就可以获取到了数据,在这个过程,我们不断的尝试,最后,也拿到了我们想要的数据,我们会不会有一些成就感。我们看看获取到了什么样子的数据吧。

QQ图片20230422184646.png

拿到了,这样的数据,大家就不难拿到我们要的数据,直接字典取值就好了,今天,我们用了大篇幅的段落,来解释我们是如何获取数据的。

解析数据

我们接下来就可以解析数据了,代码很简单。我这里直接获取评论了,不获取评论者了,原理是一样的,大家感兴趣的可以自己去试试。

datas = res.json()['data']['list']

for contents in datas:
    content = contents['content']
    print(content)

这段代码将从 res.json()['data']['list'] 中获取数据,并将其存储在 datas 变量中。然后,它使用一个 for 循环遍历 datas 中的每个元素,并将每个元素的 content 属性存储在 content 变量中。最后,它打印出每个元素的 content 属性。

我们直接看效果,这个很简单的。

QQ图片20230422185330.png

总结

今天,我们用了大篇幅的段落,来解释我们是如何获取了某技术平台的评论,没有什么是一次成功的,都是不断尝试的过程。人生何尝不是如此。

Python 的迅速崛起对整个行业来说都是极其有利的 ,但“人红是非多”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

😝有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取🆓
Python全套学习资料

在这里插入图片描述

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

5️⃣Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述

上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓
在这里插入图片描述

环境要求 建议使用conda虚拟环境部署,python版本要求大于或等于``3.6`` 环境安装 首先你需要将本项目克隆到你本地。 然后您只需要使用下面命令即可一键安装所需的环境 ```bash pip3 install -r requirements.txt ``` 如果pip下载速度较慢,请使用下面这个命令 ``` pip3 install -r requirements.txt -i http://pypi.douban.com/simple/ ``` 配置 在使用前,你需要完成一些基本配置 所有配置你只需要在``config.py``文件中完成,如果你不懂任何技术,请不要修改除``config.py``文件外的任何文件。 你主要是需要去配置``LIVE_URL``选项,去指定直播间的地址,配置实例 ```py LIVE_URL = r"https://live.kuaishou.com/u/KPL704668133" ``` 上面这个代码我指定了KPL直播间地址。 其次,你需要配置``BROWSER_PATH``选项,该选项需要你指定浏览器可执行文件的路径,在默认的配置中,我使用了``edge``浏览器作为驱动。 你可以配置任何使用``chromium``内核构建的浏览器,例如``Microsoft Edge``或者是``Google Chrome``等。 ```py BROWSER_PATH = r'C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe' ``` 其他选项对于本项目的运行影响不大,你可以看选项上面的注释进行配置 运行 如果你完成了上述的配置,使用以下命令进行启动本项目 ```bash python main.py ``` 未知礼物 由于时效性问题,可能导致一些礼物无法识别,此时,你需要额外配置一些未知的礼物。 程序会将获取到的未知的例如默认存放到``unknow_gift``目录(你可以在``config.py``中修改这个路径),名称为:礼物图片md5.png,你需要将``礼物图片md5``改为礼物真实的名称,例如,原始文件名``580c253e0bd3cc4212f7087d110691ed.png``,你需要改为``粉丝团.png`` 最后你需要执行以下命令完成礼物的导入 ```shell python import_git.py ``` 事件开发 如果你在获取到礼物、收到聊天信息、收到点赞后想实现一些业务流程处理,你需要在``handle.py``中实现。 该文件中共实现了三个方法,分别为``message``、``like``、``gift``分别代表了``消息``、``点赞``、``礼物`` 代码如下 ```py """ 收到弹幕消息会调用这个函数 """ def message(username,text): pass """ 收到点赞消息会调用这个函数 """ def like(username): pass """ 收到礼物消息会调用这个函数,如果未知礼物,gift_name 为 None """ def gift(username,gift_name): pass ``` ``message``函数会传入两个参数,分别为``username``和``text``,顾名思义``username``就是谁发的消息,``text``就是发的什么消息。 ``like``函数会传入一个参数,为``username``,就是谁点了赞。 ``gift``函数会传入两个参数,为`username`和``gift_name``,``username``是送礼物的人,``gift_name``就是礼物名称,如果遇到了未知礼物,则传入的为None
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值