搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!

[复制链接]
查看: 84|回复: 0

1万

主题

1万

帖子

3万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
32667
发表于 2020-1-15 01:07 | 显示全部楼层 |阅读模式
写在前面

考研在即,想多了解考研er的想法,就是去找学长学姐大要去网上搜索,贴吧就是一个好地方。而借助强大的工具可以快速从收集鱼龙混杂的信息中获得有价格的信息。固然网上有很多爬取百度贴吧的教程和例子,可是贴吧法则更新快,方针纷歧样,爬取的内容也纷歧样,所以就有了这个工具。
用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!  热点新闻 11787891-ca6365c53ccd1808

方针

爬取1000条帖子→判定能否是广告大要渣滓信息→分析说话情感→天生词云
一、分析

1.1 先检察贴吧的法则,公然有纪律,每一页是50条帖子
用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!  热点新闻 11787891-cdfaa5eb1eec8b78

1.2 帖子内容,也有纪律,都在这个标签里面
用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!  热点新闻 11787891-49aa5b220a7f2f5a

1.3 判定内容就用百度AI的内容考核,情感分析也用百度AI了,省事
1.4 词云可以先用jieba分词然后再用wordcloud天生,可是后来发现网上有现成的工具
二、爬取进程

2.1 首先打点的一个小题目就是让它自己盘算一下每页是50条帖子,我输入1000条它应当去爬取那几个页面,就用这类数学盘算就行
2.2爬取进程代码,爬取后就挪用内容考核以及情感分析,然后写入文件
  1. def gettbtz(tbname,tznum):  ####按照给出的贴吧和帖子数(50的整数倍)获得全数帖子    n = -50    tznum = int(tznum)  ###z这里是要按照贴吧的法则,每页表现50条帖子    emotions = 0    while (tznum > n):        n = n + 50        print("正在爬取前" + str(n) + "条帖子")        url = "http://tieba.baidu.com/f?kw=" + tbname + "&ie=utf-8&pn=" + str(n)        soup = BeautifulSoup(requests.get(url).text,'lxml')  ###爬取行动        a = soup.find_all('div',class_='threadlist_abs threadlist_abs_onlyline')        for a in a:  ###接下来以此判定文本能否合规,然后判定情感正向偏向指数,然后写入文件            if BDAITEXT(a.text) == "合规":                print("爬取到合规帖子,正在写入文件:" + a.text)                with open("resaults.txt","a+",encoding='utf-8') as f:                    f.write(str(a.text))  ###写入这里特地转换一下数据典范,制止背面发生文本编码毛病                try:                    emotions = emotions + BDAIemotion(a.text)                    print("当前累计情感指数:" + str(emotions))                except:                    print("情感分析出错,跳过")            else:                print("帖子分歧规,跳过")        time.sleep(10)  ###君子协议,10秒停息        f.close()
复制代码
三、百度野生智能API挪用

3.1 百度AK获得,就是要先到百度AI开辟平台注册一个开辟者账号,然后建立利用,获得利用id和密钥,然后获得这样一个挪用的密钥
  1. # client_id 为官网获得的AK, client_secret 为官网获得的SKhost = 'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=【利用ID】&client_secret=【SK】' response = requests.get(host) if response: print(response.json())
复制代码
3.2 内容考核API挪用
  1. def BDAITEXT(text):  ####百度AI文本考核,返回合规大要分歧规    content = {"text": text}    r = requests.post(BDAItexturl,content).text    if r:        rback = json.loads(r)        return rback["conclusion"]
复制代码
3.3 情感分析API挪用
  1. def BDAIemotion(text):  ####百度AI情感分析,返回一个数值    content = {"text": text}    content = json.dumps(content)    r = requests.post(BDAIemotionurl,content).text    if r:        rback = json.loads(r)        return rback['items'][0]['positive_prob']
复制代码
四、词云天生

有很多在线工具,导入大段文本,然后按照必要举行文本的过滤、分词,然后设备色彩、款式便可以天生词云。
用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!  热点新闻 11787891-c4b09d22bc81dcb0

五、信息分析

看词云,结果不言而喻,提早地预备、丰富的履历、专业课、数学、政治、院校挑选…………
从情感上来看,大大都情感指数偏向积极,说明看待考研照旧必要一个积极的态度。
用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!  热点新闻 11787891-03939374d6af5157

运转截图

用Python爬取了考研吧1000条帖子,原来他们都在讨论这些!  热点新闻 11787891-5780ab1734d8df3c

待改良

1.应当多线程,速度太慢了
2.爬取了帖子,没有爬取批评
3.情感分析有很多出错
“闲言碎语留给市井贩子小民,你尽管文雅自在心胸远方”


免责声明:假如加害了您的权益,请联系站长,我们会实时删除侵权内容,感谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2006-2014 全椒百姓网-全椒知名**,发布及时新鲜的全椒新闻资讯 生活信息 版权所有 法律顾问:高律师 客服电话:0791-88289918
技术支持:迪恩网络科技公司  Powered by Discuz! X3.2
快速回复 返回顶部 返回列表