学习爬取美团评论

链接:https://www.meituan.com/meishi/193383554/

分析网页

  1. 右击,检查
  2. network,all在这里插入图片描述在这里插入图片描述在这里插入图片描述
    3.复制去格式化,在线解析:JSON.CN
    在这里插入图片描述

import requests
url=“https://www.meituan.com/meishi/api/poi/getMerchantComment?uuid=cfad4abaf1f34b5cbebf.1586970993.1.0.0&platform=1&partner=126&originUrl=https%3A%2F%2Fwww.meituan.com%2Fmeishi%2F193383554%2F&riskLevel=1&optimusCode=10&id=193383554&userId=&offset=10&pageSize=10&sortType=1”

headers_meituan={
“User-Agent”:“Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36”
}
reponse=requests.get(url=url,headers=headers_meituan)
print(reponse.text)

提取用户名

for item in reponse.json()[“data”][“comments”]:
name= item[“userName”]
print(name)

运行结果如下

小乞丐的帆布袋
gaX555336548
自此流年各天涯
尛优雅
匿名用户
gaX555336548
DpH602572762
Kal166328350
gaX555336548
小尼莫君

提取用户名、ID、链接和评论

for item in reponse.json()[“data”][“comments”]:
name= item[“userName”]
user_id= item[“userId”]
user_url= item[“userUrl”]
comment= item[“comment”]
print(name,comment,user_id,)
print("&"*66)

运行结果

小乞丐的帆布袋 老板特别热情,人也超级好,本来是应该买晚餐的,买成中餐的了,想给他补差价老板也没要,包浆豆腐绝对是一绝,吃了超级多的生蚝和虾,菜的种类还是比较丰富的,吃完了老板还问了一下我们的建议,很认真,也很好,下次还带人来吃,祝老板生意兴隆(ps:第一次在美团上打那么多的字,哈哈哈,真心推荐) 366900739
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
gaX555336548 味道好,毕竟是炭火考的,有那种感觉,老板太热情了,菜品丰富!要是配个火锅就真的无法无天的感觉,在大学城这片土地上,别提了,鸡皮五花肉好吃😊 288367154
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&

保存到CSV

import csv
fp=open("./美团评论.csv",‘a’,newline=’’,encoding=‘utf-8-sig’)
writer=csv.writer(fp)
writer.writerow((“用户”,“ID”,“链接”,“评论”))

for item in reponse.json()[“data”][“comments”]:
name= item[“userName”]
user_id= item[“userId”]
user_url= item[“userUrl”]
comment= item[“comment”]
result=(name,comment,user_id,)
writer.writerow(result)
fp.close

爬取所有页面内容

在这里插入图片描述
在这里插入图片描述 for i in range(0,381,10): ajax_url=“https://www.meituan.com/meishi/api/poi/getMerchantComment?uuid=cfad4abaf1f34b5cbebf.1586970993.1.0.0&platform=1&partner=126&originUrl=https%3A%2F%2Fwww.meituan.com%2Fmeishi%2F193383554%2F&riskLevel=1&optimusCode=10&id=193383554&userId=&offset=0&pageSize=10&sortType=1” print(ajax_url)