返回顶部
首页 > 资讯 > 后端开发 > Python >怎么用Python爬取4027条脉脉职言
  • 474
分享到

怎么用Python爬取4027条脉脉职言

2023-06-16 22:06:49 474人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

今天就跟大家聊聊有关怎么用python爬取4027条脉脉职言,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。脉脉是一个实名职场社交平台。之前爬了脉脉职言版块,大概爬了4027条评论,本

今天就跟大家聊聊有关怎么用python爬取4027条脉脉职言,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

脉脉是一个实名职场社交平台。之前爬了脉脉职言版块,大概爬了4027条评论,本文对爬取过程给出详细说明,对于评论内容仅做可视化分析,之前存了一堆这方面的文章,今天一看全都404了”。

爬虫

仍然使用Python编程,对爬虫没兴趣的可以直接跳过看下部分,不影响悦读。

网址https://maimai.cn/Gossip_list。

需要先登录才能看到里面的内容。爬取目标:

怎么用Python爬取4027条脉脉职言

只爬文字部分,图片不考虑。

在浏览器内按F12打开开发者,向下滑,会看到很多gossip开头的JSON文件(不行的话刷新一下)

怎么用Python爬取4027条脉脉职言

右键open in new tab,里面是一条一条记录,text后面是评论内容。

怎么用Python爬取4027条脉脉职言

我们感兴趣的信息是下面这些

怎么用Python爬取4027条脉脉职言

看一看每个网站的地址,都是page=数字结尾,所以爬的时候写一个循环,数字从1开始往后取就可以了。

Https://maimai.cn/sdk/WEB/gossip_list?u=206793936&channel=www&version=4.0.0&_csrf=coAlLvgS-UogpI75vEgHk4O1OQivF2ofLce4&access_token=1.9ff1c9df8547b2b2c62bf58b28e84b97&uid=%22MRlTFjf812rF62rOeDhC6vAirs3A3wL6ApgZu%2Fo1crA%3D%22&token=%22rE8q1xp6fZlxvwygWJn1UFDjrmMXDrSE2tc6uDKNIDZtRErng0FRwvduckWMwYzn8CKuzcDfAvoCmBm7%2BjVysA%3D%3D%22&page=1&jsononly=1

json的最开头有total和remain两个参数,给出了目前所有可见评论剩余数和总数,可以作为循环的停止条件。

怎么用Python爬取4027条脉脉职言

但比较坑的一点是,脉脉并不能可见所有评论,而且评论是不断刷新的,所有如果爬完一页循环到下一页或者尝试过很多次之后,他会提示你:

怎么用Python爬取4027条脉脉职言

直接看的时候有这样的提示会体验很好,但对于爬虫来说就不是很友好了,需要加个if判断。

另外爬的太快,也会出错,记得加time.sleep。

大概把能踩的坑都踩了,所以如果顺利的话,每次只能爬几百条信息,想爬更多的话,需要过一段时间等信息更新的差不多了再爬,代码如下

# -*- coding: utf-8 -*- """ Created on Fri Oct 19 18:50:03 2018 """ import urllib import requests from fake_useragent import UserAgent import json import pandas as pd import time import datetime #comment_api = 'https://maimai.cn/sdk/web/gossip_list?u=206793936&channel=www&version=4.0.0&_csrf=7ZRpwOSi-JHa7JrTECXLA8njznQZVbi7d4Uo&access_token=1.b7e3acc5ef86e51a78f3410f99aa642a&uid=%22MRlTFjf812rF62rOeDhC6vAirs3A3wL6ApgZu%2Fo1crA%3D%22&token=%22xoNo1TZ8k28e0JTNFqyxlxg%2BdL%2BY6jtoUjKZwE3ke2IZ919o%2FAUeOvcX2yA03CAx8CKuzcDfAvoCmBm7%2BjVysA%3D%3D%22&page={}&jsononly=1' # 发送get请求 comment_api = 'https://maimai.cn/sdk/web/gossip_list?u=206793936&channel=www&version=4.0.0&_csrf=FfHZIyBb-H4LEs35NcyhyoAvRM7OkMRB0Jpo&access_token=1.0d4c87c687410a15810ee6304e1cd53b&uid=%22MRlTFjf812rF62rOeDhC6vAirs3A3wL6ApgZu%2Fo1crA%3D%22&token=%22G7rGLEqmm1wY0HP4q%2BxpPFCDj%2BHqGJFm0mSa%2BxpqPg47egJdXL%2FriMlMlHuQj%2BgM8CKuzcDfAvoCmBm7%2BjVysA%3D%3D%22&page={}&jsononly=1' """ author:作者 text:评论 cmts :评论数 circles_views:被查看数 spread :转发数 likes :点赞数 time : 时间  """   headers = { "User-Agent": UserAgent(verify_ssl=False).random} j = 0 k = 0 response_comment = requests.get(comment_api.fORMat(0),headers = headers) json_comment = response_comment.text json_comment = json.loads(json_comment) num = json_comment['total'] cols = ['author','text','cmts','likes','circles_views','spreads','time'] dataall = pd.DataFrame(index = range(num),columns = cols) remain = json_comment['remain'] print(remain) while remain!= 0 :    n = json_comment['count']    for i in range(n):        if json_comment['data'][i]['text'] !='下面内容已经看过了,点此刷新':            dataall.loc[j,'author'] = json_comment['data'][i]['author']            dataall.loc[j,'text'] = json_comment['data'][i]['text']            dataall.loc[j,'cmts'] = json_comment['data'][i]['cmts']            dataall.loc[j,'likes'] = json_comment['data'][i]['likes']            dataall.loc[j,'circles_views'] = json_comment['data'][i]['circles_views']            dataall.loc[j,'spreads'] = json_comment['data'][i]['spreads']            dataall.loc[j,'time'] = json_comment['data'][i]['time']             j+= 1                     else:            k = -1                break                                 k+= 1    comment_api1 = comment_api.format(k)        response_comment = requests.get(comment_api1,headers = headers)    json_comment = response_comment.text    json_comment = json.loads(json_comment)    remain = json_comment['remain']    print('已完成 {}% !'.format(round(j/num*100,2)))    time.sleep(3)           dataall = dataall.dropna() dataall = dataall.drop_duplicates()  dataall.to_csv('data_20181216_part3.csv',index = False)

数据可视化

就这样断断续续爬了一堆文件去重之后,得到了4027条数据,格式如下

怎么用Python爬取4027条脉脉职言

接下来对爬到的数据做一些简单的分析。因为并不没有爬到全量评论,只是一个小样本,所以结果肯定是有偏的,但爬的时间很随机,而且前前后后爬了两周多,这样选样也比较随机,还是有一定的代表性。

脉脉中发言用户有两类,一类是完全匿名的,用系统生成的昵称,一类显示为xx公司员工,我们统计爬到的样本中这两种用户的数量及发帖量。4027条职言中,不同发帖人共计1100名。

怎么用Python爬取4027条脉脉职言

匿名发帖人超过70%,大家都并不愿意用真实身份发言,毕竟被公司/学校人肉风险还是很高的。

怎么用Python爬取4027条脉脉职言

发帖数也毫无意外,匿名发帖人贡献了85%以上的帖子。

匿名发帖人无法获取更细致的数据,但对于那些不匿名的发帖人,可以获取他们所在公司  信息,将发帖数按公司汇总,看各大企业发帖量,可以作为整体的一个估计。统计时已经考虑了公司名称输入不一致的情况,将蚂蚁金服、支付宝等替换成了阿里巴巴,京东金融等替换成京东,今日头条、抖音等替换为字节跳动,取发帖数TOP20。

怎么用Python爬取4027条脉脉职言

可以看到,发帖人大多来自互联网企业,金融、地产等其他企业相对较少。

文本分析

对于转发、评论数、点赞数,因为有爬取时间上的差异,所以不好直接比较,给出评论数最多的前5条评论,看看大家最愿意参与的话题是什么。

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2.  用一个字概括一下你的2018年。(1659条评论)

  3. 【再就业求助帖】本人是刚被优化掉的知乎程序员,工作3年。比较想去BAT等大厂,希望贵厂HR们带公司认证来回复一下,发一发真实有hc的岗位,祝愿兄弟们都能找到新工作。(610条评论)

  4. 用两个字概括你现在的工作。(477条评论)

  5. 网易涨今年薪涨了50%.....公司是发财了吗?(458条评论)

  6. 用2个字总结你的工作。(415条评论)

1,4,5都是蛮有意思的问题,我们把1,4,5的评论都爬下来,做成词云,看看大家都在说些什么。

用一个字概括你的2018年

爬虫过程跟上面基本是一样的,找到json,不过这个可以爬到全部评论。

# -*- coding: utf-8 -*- """ Created on Fri Oct 19 18:50:03 2018 """ import urllib import requests from fake_useragent import UserAgent import json import pandas as pd import time # 发送get请求 comment_api = 'https://maimai.cn/sdk/web/gossip/getcmts?gid=18606987&page={}&count=50&hotcmts_limit_count=1&u=206793936&channel=www&version=4.0.0&_csrf=38244DlN-X0iNIk6A4seLXFx6hz3Ds6wfQ0Y&access_token=1.9ff1c9df8547b2b2c62bf58b28e84b97&uid=%22MRlTFjf812rF62rOeDhC6vAirs3A3wL6ApgZu%2Fo1crA%3D%22&token=%22rE8q1xp6fZlxvwygWJn1UFDjrmMXDrSE2tc6uDKNIDZtRErng0FRwvduckWMwYzn8CKuzcDfAvoCmBm7%2BjVysA%3D%3D%22' """ author:作者 text:评论 、  """   #headers = { "User-Agent": UserAgent(verify_ssl=False).random,'Cookie':cookie} headers = { "User-Agent": UserAgent(verify_ssl=False).random} j = 0 k = 0 response_comment = requests.get(comment_api.format(0),headers = headers) json_comment = response_comment.text json_comment = json.loads(json_comment)   num = json_comment['total'] cols = ['author','text'] dataall = pd.DataFrame(index = range(num),columns = cols)  while j < num :    n = json_comment['count']    for i in range(n):         dataall.loc[j,'author'] = json_comment['comments'][i]['name']        dataall.loc[j,'text'] = json_comment['comments'][i]['text']        j+= 1                 k += 1    comment_api1 = comment_api.format(k)         response_comment = requests.get(comment_api1,headers = headers)    json_comment = response_comment.text    json_comment = json.loads(json_comment)    print('已完成 {}% !'.format(round(j/num*100,2)))    time.sleep(3)              dataall.to_excel('用一个字概括你的2018年.xlsx')

爬下来之后,删掉超过一个字的评论,按词频确定大小,做词云图如下

怎么用Python爬取4027条脉脉职言

用两个字概括你现在的工作|用2个字总结你的工作

2,5是一样的,爬下来合并到一起后分析。代码不再重复,实际上用上面那段代码,找到json地址后替换,任何一个话题下的评论都可以全爬到,删掉不是2个字的评论后根据词频作图。

怎么用Python爬取4027条脉脉职言

使用SnowNLP对评论进行情感分析,最终4027条中,积极的有2196条,消极的有1831条。

积极

怎么用Python爬取4027条脉脉职言

消极

怎么用Python爬取4027条脉脉职言

模型对大部分评论的情感倾向判断的比较准确,小部分有误。

对所有评论提取关键词做词云收尾。

看完上述内容,你们对怎么用Python爬取4027条脉脉职言有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注编程网Python频道,感谢大家的支持。

--结束END--

本文标题: 怎么用Python爬取4027条脉脉职言

本文链接: https://lsjlt.com/news/285895.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么用Python爬取4027条脉脉职言
    今天就跟大家聊聊有关怎么用Python爬取4027条脉脉职言,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。脉脉是一个实名职场社交平台。之前爬了脉脉职言版块,大概爬了4027条评论,本...
    99+
    2023-06-16
  • Python如何爬取 4027 条脉脉职言
    本篇文章给大家分享的是有关Python如何爬取 4027 条脉脉职言,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。脉脉是一个实名职场社交平台。之前爬了脉脉职言版块,大概爬了40...
    99+
    2023-06-02
  • 怎么使用python爬虫爬取数据
    本篇内容介绍了“怎么使用python爬虫爬取数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!python爬出六部曲第一步:安装reques...
    99+
    2023-06-29
  • 怎么用Python爬取数据
    这篇文章主要介绍“怎么用Python爬取数据”,在日常操作中,相信很多人在怎么用Python爬取数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用Python爬取数据”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-16
  • 怎么用python爬取网站
    使用Python爬取网站的一般步骤如下:1. 导入所需的库,如`requests`或`urllib`用于发送HTTP请求,`beau...
    99+
    2023-08-31
    Python
  • 怎么用Python爬取天气并且语言播报
    这篇文章主要讲解了“怎么用Python爬取天气并且语言播报”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Python爬取天气并且语言播报”吧!一、 预备知识此案例实现功能:利用网络爬虫...
    99+
    2023-06-16
  • python语言怎么爬取网易云音乐
    小编给大家分享一下python语言怎么爬取网易云音乐,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!正式进入主题首先还是去找目标网页并开始分析网页结构,如下上面的三...
    99+
    2023-06-02
  • 使用Ajax请求怎么爬取今日头条
    本篇文章给大家分享的是有关使用Ajax请求怎么爬取今日头条,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。代码如下:import requestsimport ...
    99+
    2023-06-08
  • python要怎么爬取今日头条街拍美图案
    python要怎么爬取今日头条街拍美图案,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。今天为大家介绍一个利用Python爬取今日头条街拍美图的案例,想到各位会喜...
    99+
    2023-06-02
  • 使用python怎么爬取数据
    使用python怎么爬取数据?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Python的优点有哪些1、简单易用,与C/C++、Java、C# 等传统语言相比,P...
    99+
    2023-06-14
  • 怎么用python爬取douban信息
    本篇内容介绍了“怎么用python爬取douban信息”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先导入库定义保存地址函数解析网址打印爬...
    99+
    2023-06-02
  • 使用Python怎么爬取MP3音频
    使用Python怎么爬取MP3音频?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。r: play/getdatacallback: jQuery19108...
    99+
    2023-06-06
  • 怎么使用Python爬取QQ密码
    非法获取他人的账号密码是违法行为,并且严重侵犯了他人的隐私权。强烈不建议或支持这样的行为。爬取QQ密码是非法的,且侵犯了个人隐私。违...
    99+
    2023-08-31
    Python
  • 怎么用python爬取网站数据
    要用Python爬取网站数据,可以使用Python的爬虫库来实现。下面是一个简单的示例,使用`requests`库来获取网页内容,使...
    99+
    2023-09-07
    python
  • 怎么用python爬取小说内容
    使用Python爬取小说内容,可以使用requests库发送HTTP请求获取小说网站的HTML内容,然后使用BeautifulSou...
    99+
    2023-09-12
    python
  • 怎么使用python爬虫爬取二手房数据
    这篇文章主要介绍怎么使用python爬虫爬取二手房数据,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和floa...
    99+
    2023-06-14
  • 使用Python爬虫怎么避免频繁爬取网站
    这期内容当中小编将会给大家带来有关使用Python爬虫怎么避免频繁爬取网站,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型...
    99+
    2023-06-15
  • 使用python怎么爬取微博评论
    今天就跟大家聊聊有关使用python怎么爬取微博评论,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python主要应用领域有哪些1、云计算,典型应用OpenStack。2、WEB前端...
    99+
    2023-06-14
  • python中怎么使用XPath爬取小说
    这篇文章将为大家详细讲解有关python中怎么使用XPath爬取小说,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决...
    99+
    2023-06-14
  • Python中怎么利用Beautifulsoup爬取网站
    这篇文章将为大家详细讲解有关Python中怎么利用Beautifulsoup爬取网站,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.开始前准备1 python3,本篇博客内容采用pytho...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作