本帖最后由 孤霜情冷点朱砂 于 2023-7-10 19:18 编辑
URL:https://maimai.cn/
技术需求:1.需要登录才能访问,使用人工登陆+获取cookie的方式绕过登录
2.需要Ajax进行异步访问
3.通过抓包获取结果
代码如下:
[Python] 纯文本查看 复制代码 import requests
import json
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
"Cookie": "", #填入自己的cookie
"X-Csrf-Token": "12136vux-ycWY72FoKjbUsFfLYfqgVBQoRlA",
}
# https://maimai.cn/sdk/web/content/get_list?api=gossip%2Fv3%2Fsquare&u=239689746&page=2&before_id=0
# ?后面的数据不需要复制,那是载荷中提供的参数
url = "https://maimai.cn/sdk/web/content/get_list"
def crawl_page(num):
param = {
"api": "gossip/v3/square",
"u": "239689746",
"page": f"{num}",
"before_id": "0"
}
r = requests.get(url, headers=headers, params=param)
data = json.loads(r.text)
datas = []
for text in data["list"]:
# print(text['text'])
datas.append(text["text"])
return datas
with open("脉脉结果.txt","w",encoding="utf8")as f:
for page in range(11):
print("craw page %s"%page)
datas = crawl_page(page)
f.write("\n".join(datas)+"\n")
需要注意的点:
1.headers中的数据需要根据经验来设置,实在不行可以将请求标头的所有内容写入进去。
2.爬取的网页是通过Ajax异步加载的,所以爬取的网页需要自己F12查看。
3.网址?后面的数据不需要复制,那是载荷中提供的参数。requests.get(url, headers=headers, params=param)
4.得到的json结果需要使用json.loads()解析为python对象。
|