情感分析实战(中文)-数据获取

情感分析实战(中文)-数据获取

背景:该专栏的目的是将自己做了N个情感分析的毕业设计的一个总结版,不仅自己可以在这次总结中,把自己过往的一些经验进行归纳,梳理,巩固自己的知识从而进一步提升,而帮助各大广大学子们,在碰到情感分析的毕业设计时,提供一个好的处理思路,让广大学子们能顺利毕业

情感分析实战:

a) 数据获取篇

b) 数据预处理篇-情感分类篇(中文版)

c) 数据预处理篇-情感分类篇(英文版)

d) 无监督学习机器学习聚类篇

e) LDA主题分析篇

f) 共现语义网络



目标网站 :马蜂窝(在这里声明一下该爬取数据仅用于学术研究,不对该网站造成任何攻击,各大网友在爬取的过程中,注意素质)

这里选择评论最多的迪士尼

1-1

这里里面的评价便是我们所要获取的内容

1-2

鼠标右键点击检查或者F12

3

找到含有评论的API

4

然后我们来寻找规律

https://pagelet.mafengwo.cn/poi/pagelet/poiCommentListApi?callback=jQuery18109039283409653498_1653125985557&params=%7B%22poi_id%22%3A%22520%22%2C%22page%22%3A3%2C%22just_comment%22%3A1%7D&_ts=1653126119677&_sn=4810828c84&_=1653126119677
https://pagelet.mafengwo.cn/poi/pagelet/poiCommentListApi?callback=jQuery18109039283409653498_1653125985557&params=%7B%22poi_id%22%3A%22520%22%2C%22page%22%3A4%2C%22just_comment%22%3A1%7D&_ts=1653126263661&_sn=f1e168c758&_=1653126263661

由这些我们可以看出,其实它们前面的构造都一样,只是在这几个地方不一样

5

而其中A3和A4,这个就是代表的是评论的页数,3就是评论的第三页,4就是评论中的第四页

把这个链接的尾部砍掉

https://pagelet.mafengwo.cn/poi/pagelet/poiCommentListApi?callback=jQuery18109039283409653498_1653125985557&params=%7B%22poi_id%22%3A%22520%22%2C%22page%22%3A4%2C%22just_comment%22%3A1%7D&

然后把里面的试试看看能不能获取到内容,能的话说明尾部的这些并不重要

6

数据是可以成功获取到了,只是这些数据有些乱接下来我们就要开始整理我们的数据内容了,让这些数据转换,方便我们后续的获取

这里我们首先把一些无效数据给替换掉,方便后续我们对数据进行格式化

这里采用的是正则公式

7

把刚刚前面的那一串jquery…的东西全部给替换掉了,把原来的json格式打印成python的格式,这里保持格式的一致化之后就能获取到中文内容了

然后再用bs4去内容进行定位,获取到时间和正文内容,这里打印一下看看

8

接着我们再对数据进行清洗,删掉文中HTML代码的部分,再用pandas把数据保存为CSV格式

 c = c.replace('<br/>','').replace('\n','').replace('class="rev-txt">','').replace('</p>','').replace('<p','').replace('~','')
        t = t.replace('<span class="time">','').replace('</span>','')

最后看看效果

9

10

内容就这样获取好了,然后其他字段的话,根据自己的需要去添加对应的bs4定位法则即可,这里就不做过多的介绍了

如果是获取多页的内容的话,那么写一个for循环即可,然后把上面提到数字的那个地方进行修改就好了,这样就获取多页内容,具体的尾页的话,需要大家自己去该网站点击末尾然后查看信息即可,再把相应的数字进行修改
11

12

这里是源代码,具体需要的修改的是headers这个部分这里,记得替换成自己的cookie

13

import requests
import time
import json
import pandas as pd
from tqdm import tqdm
from bs4 import BeautifulSoup
import re

headers = {
	#这里根据不同评论的内容,修改不同的URL
    'referer': 'https://www.mafengwo.cn/poi/520.html',
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36',
    #这里换成你自己的
    'cookie': 'xxx',
    'sec-ch-ua': '" Not A;Brand";v="99", "Chromium";v="96", "Google Chrome";v="96"',

}


def get_parse(url):
    html = requests.get(url,headers=headers)
    if html.status_code == 200:
        get_html(html)
    else:
        print(html.status_code)

def get_html(html):
    content = html.text
    content = re.sub('jQuery*\d+_*\d+','',content)
    content = content.replace('(', '').replace(');', '')
    content = json.loads(content)

    html1 = content['data']['html']
    soup = BeautifulSoup(html1,'lxml')
    content = soup.select('p.rev-txt')
    time1 = soup.select('div.info.clearfix span.time')
    for p in range(15):
        df = pd.DataFrame()
        c = str(content[p])
        t = str(time1[p])
        c = c.replace('<br/>','').replace('\n','').replace('class="rev-txt">','').replace('</p>','').replace('<p','').replace('~','')
        t = t.replace('<span class="time">','').replace('</span>','')
        df['时间'] = [t]
        df['内容'] = [c]
        df.to_csv('马蜂窝-迪士尼评论.csv',mode='a+',header=None,index=None,encoding='utf-8-sig')



if __name__ == '__main__':
    df1 = pd.DataFrame()
    df1['时间'] = ['时间']
    df1['内容'] = ['内容']
    df1.to_csv('马蜂窝-迪士尼评论.csv', mode='w', header=None, index=None, encoding='utf-8-sig')
    for i in tqdm(range(1,2)):
    	#这个URL记得改成自己想要爬取的网站的URL
        url = 'https://pagelet.mafengwo.cn/poi/pagelet/poiCommentListApi?callback=jQuery18109039283409653498_1653125985557&params=%7B%22poi_id%22%3A%22520%22%2C%22page%22%3A{}%2C%22just_comment%22%3A1%7D&'.format(i)
        get_parse(url)

以上便是爬取马蜂窝的全部教程,这里再次申明一下,获取该网站的数据仅用于学术研究,不造成任何的商业行为,这里望各位注意素质,切勿对该网站的服务器造成攻击或者商业用途

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有猫腻妖

你的鼓励是我更新的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值