获取美团商家评论词并生成词云

本文介绍了如何在Windows10环境下,利用Python3.7抓取美团商家评论,并生成词云。首先分析商家评论链接,修改特定参数如cookie和商家ID,然后编写代码,包括获取代理IP、cookie、商家ID、评论内容,最后用美团Logo作为底图生成词云。注意,代码中的URL需根据商家所在地区调整。
摘要由CSDN通过智能技术生成

获取美团商家评论词并生成词云

环境

  1. windows10
  2. python3.7

准备工作

随便打开一个商家按下F12查找评论的数据
在这里插入图片描述
拿到需要的链接
在这里插入图片描述
分析链接修改特定的参数

https://www.meituan.com/meishi/api/poi/getMerchantComment?uuid=F68E2DEAA22D6B61AA2A82D1487741CB95789F9E439DCECA46801E0D98937E49&platform=1&partner=126&originUrl=https%3A%2F%2Fwww.meituan.com%2Fmeishi%2F156848271%2F&riskLevel=1&optimusCode=10&id=156848271&userId=&offset=0&pageSize=10&sortType=1

对应着cookie
uuid,
对应着商家标识
在这里插入图片描述
需要获取的评论数目
在这里插入图片描述

编写代码

需要用的的python库
在这里插入图片描述
需要用到的全局变量

# 浏览器标识
user_agents = ['Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3704.400 QQBrowser/10.4.3587.400', 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36',
               'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)', 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)', 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 UBrowser/6.2.4094.1 Safari/537.36']

# 存放IP
ip_list = []
# 商家评价星数
star = 0
# 美团cookie
cookie_str = ""

1. 获取代理IP进行访问美团

# 获取代理IP
def get_ip():
    global ip_list
    ip_shumu = 0
    ip_chengg = 0
    # 请求头
    header = {
   
        'User-Agent': user_agents[random.randint(0, len(user_agents)-1)],
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
        'Host': 'www.89ip.cn'
    }
    # 获取页数
    print('获取IP中。。。')
    for i in range(1, 2):
        ip_url = 'http://www.89ip.cn/index_{}.html'.format(i)
        try:
            ip_html = requests.get(ip_url, headers=header)
        except ConnectionError:
            time.sleep(2)
            ip_html = requests.get(ip_url, headers=header)
        if ip_html.status_code == 200:
            print("连接IP代理网站成功。。。")
        # 替换掉HTML的空格和换行
        html = ip_html.text.replace(" ", "").replace(
            "\n", "").replace("\t", "")
        # 匹配IP和端口的正则表达式
        r = re.compile('<tr><td>(.*?)</td><td>(.*?)</td><td>')
        # 匹配到的IP与端口
        ip_data = re.findall(r, html)
        ip_shumu += len(ip_data)
        for k in range(len(ip_data)):
            # 拼接IP与端口
            ip = "https://" + ip_data[k][0] + ":" + ip_data[k][1]
            ip_a = {
   "https://": ip}
            # 测试可不可用
            ping = requests.get("https://www.baidu.com", proxies=ip_a)
            if ping.status_code == 200:
                ip_list.append(ip_a)
                ip_chengg += 1
    print('获取到的IP数:{0}\n有效的IP数:{1}'.format(ip_shumu, ip_chengg))

2. 获取美团的cookie,,后面需要用到

# 获取美团cookie
def get_cookie():
    global cookie_str
    header = {
   
        'Host': 'www.meituan.com',
        'User-Agent': user_agents[random.randint(0, len(user_agents)-1)],
    }
    a = 0
    while True:
        cookie_req = requests.get(
            "https://gz.meituan.com/s/", headers=header, proxies=ip_list[
                random.randint(0, len(ip_list) - 1)
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值