用Python爬取了考研吧1000条帖子,正本他们都在谈论这些!-简书(用python爬取一个人所有信息)
写在前面
考研在即,想多晓得考研er的主意,就是去找学长学姐或许去网上查找,贴吧就是一个好当地。而凭仗健壮的东西可以快速从网络鱼龙混杂的信息中得到有价值的信息。尽管网上有许多爬取baidu贴吧的教程和比方,可是贴吧规则更新快,意图纷歧样,爬取的内容也纷歧样,所以就有了这个东西。
heard.jpg
意图
爬取1000条帖子→判别是不是
是广告或许废物信息→分析言语情感→生成词云
一、分析
1.1 先查看贴吧的规则,公然有规则,每一页是50条帖子
tiebaguilv.png
1.2 帖子内容,也有规则,都在这个标签里边
tiebaguilv2.png
1.3 判别内容就用baiduai的内容审阅,情感分析也用baiduai了,省劲
1.4 词云可以先用jieba分词然后再用wordcloud生成,可是后来发现网上有现成的东西
二、爬取进程
2.1 首要处置的一个小疑问就是让它自个核算一下每页是50条帖子,我输入1000条它大约去爬取那几个页面,就用这种数学核算就行
2.2爬取进程代码,爬取后就调用内容审阅以及情感分析,然后写入文件
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()
三、baidu人工智能api调用
3.1 baiduak获取,就是要先到baiduai开发平台注册一个开发者账号,然后创建使用,获取使用id和密钥,然后得到这样一个调用的密钥
# client_id 为官网获取的ak, client_secret 为官网获取的sk
host = '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调用
def bdaitext(text): ####baiduai文本审阅,回来合规或许不合规
content = {"text": text}
r = requests.post(bdaitexturl,content).text
if r:
rback = json.loads(r)
return rback["conclusion"]
3.3 情感分析api调用
def bdaiemotion(text): ####baiduai情感分析,回来一个数值
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']
四、词云生成
有许多在线东西,导入大段文本,然后根据需要进行文本的过滤、分词,然后设置颜色、款式就可以生成词云。
qq截图20210114231926.png
五、信息分析
看词云,成果清楚明晰,提前地预备、丰厚的经历、专业课、数学、政治、院校选择…………
从情感上来看,大大都情感指数倾向活泼,阐明对待考研仍是需要一个活泼的情绪。
qq截图20210114233211.png
运转截图
1.gif
待改进
1.大约多线程,速度太慢了
2.爬取了帖子,没有爬取谈论
3.情感分析有许多犯错
“闲言碎语留给估客小民,你只管典雅沉着胸怀远方”
发表评论