用浏览器检查,网络,查看标头内容,设置好headers里的内容即可,user-agent,cookie,referer,x-csrf-token为必须添加。params里的page设置变量为爬取页数。爬取的json数据里评论都在list标签里,后续在style1里就是再style44里,最后把评论装入列表,然后写入本地即可。
import requests
from bs4 import BeautifulSoup
import json
headers={'User-Agent':"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0",
'Cookie':"seid=s1716947422350; guid=GxsbBBsdGAQbGRoEGlYdGRwYGx8aVhoEGgQaBB8YGwVNTm8KHBkEHRkfBUNYS0xLeQoaBBoEGgQfGBsFT0dFWEJpCgNFQUlPbQpPQUNGCgZmZ35iYQIKHBkEHRkfBV5DYUhPfU9GWlprCgMeHFIKER4cREN9ChEaBBobCn5kClldRU5EQ30CChoEHwVLRkZDUEVn; AGL_USER_ID=661542f4-393d-4ca3-b968-4280211d2b15; _buuid=35513825-edcd-4569-83d2-5b1d0e6d9602; browser_fingerprint=93358094; gdxidpyhxdE=fE0HBTUQCOt8UQtVMXRosOwi0d4Au4%5CJq9BI1li%2Fv%5CaH1QacraWK8I2UwHbms4Sv461LK7tvpHQw965aVH8jSkeKGLnY9OL9TgCXMbBt%5CzHlTKRvSnG3DWyCia9WEoxGNcXL3hK9%2BTCQbpupwalgXCX8CoN6sMa7bQqi%2FR%2BH%2FlOi0zOS%3A1716948332466; u=241675349; u.sig=lysGY6RuRwj-XOBj7GtacsCKL_M; access_token=1.7520df8ed0f6aaedb0a5e817c2e992d9; access_token.sig=XDra8YsJGaGiZ7DIpT3CLm3qNTY; u=241675349; u.sig=lysGY6RuRwj-XOBj7GtacsCKL_M; access_token=1.7520df8ed0f6aaedb0a5e817c2e992d9; access_token.sig=XDra8YsJGaGiZ7DIpT3CLm3qNTY; channel=www; channel.sig=tNJvAmArXf-qy3NgrB7afdGlanM; maimai_version=4.0.0; maimai_version.sig=kbniK4IntVXmJq6Vmvk3iHsSv-Y; session=eyJzZWNyZXQiOiJHbi1lcXlyQjBQSU5jZEdCc2YxNFdiOHAiLCJ1IjoiMjQxNjc1MzQ5IiwiX2V4cGlyZSI6MTcxNzAzMzk5NDQzNiwiX21heEFnZSI6ODY0MDAwMDB9; session.sig=PzKBla6O8iNQwNHICMIw8_B5ouw; csrftoken=Agjh5iLL-AvsApA_agZ9S_OI3UgQhZCB2TgQ",
'Referer':'https://maimai.cn/web/feed_explore',
'Sec-Ch-Ua':'"Microsoft Edge";v="125", "Chromium";v="125", "Not.A/Brand";v="24"',
'X-Csrf-Token':'Agjh5iLL-AvsApA_agZ9S_OI3UgQhZCB2TgQ'
}
url='https://maimai.cn/sdk/web/content/get_list'
def craw_maimai(n):
lst=[]
for i in range(1,n):
params={
'api': 'feed/v5/nd1feed',
'u': '241675349',
'page': i,
'before_id': '1827433124'
}
resp=requests.get(url,params=params,headers=headers)
resp=resp.text
jstext=json.loads(resp)
for text in jstext['list']:
try:
lst.append(text['style1']['text'])
except:
lst.append(text['style44']['text'])
return lst
with open('脉脉评论.txt','w',encoding='utf-8') as f:
txt='\n'.join(craw_maimai(10))+'\n'
f.write(txt)