打钩的cookie是服务器返回的,没打钩的cookie是页面生成的
import blackboxprotobuf
import requests
import os
import datetime
# 用 blackboxprotobuf 直接解码
os.environ["NO_PROXY"] = 's.wanfangdata.com.cn'
# headers={"User-Agent":UserAgent().chrome}
headers = {
"Accept": "*/*",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "zh-CN,zh;q=0.9",
"Content-Type": "application/grpc-web+proto",
"Origin": "https://s..com.cn",
"host": "s.wanfangdata.com.cn",
"Referer": "https://s..com.cn/paper?q=%E4%BD%9C%E8%80%85%E5%8D%95%E4%BD%8D%3A%E5%8C%97%E4%BA%AC%E5%A4%A7%E5%AD%A6&p=4",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36"
}
deserialize_data = {
"1": {
"1": "paper",
"2": "作者单位:北京大学",
"5": 1,
"6": 20,
"8": "\u0000"
},
"2": 1
}
message_type = {'1': {'type': 'message', 'message_typedef': {
'1': {'type': 'bytes', 'name': ''},
'2': {'type': 'bytes', 'name': ''},
'5': {'type': 'int', 'name': ''},
'6': {'type': 'int', 'name': ''},
'8': {'type': 'bytes', 'name': ''}}, 'name': ''},
'2': {'type': 'int', 'name': ''}}
form_data = bytes(blackboxprotobuf.encode_message(deserialize_data, message_type))
f_data = bytes([0, 0, 0, 0, len(form_data)]) + form_data
url = 'https://s.wanfangdata.com.cn/SearchService.SearchService/search'
res = requests.post(url, data=f_data, headers=headers, timeout=10)
#print(res.content)
#print(res.text)
response_data, message_type = blackboxprotobuf.protobuf_to_json(res.content[5:])
print(response_data)
print(datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
print(message_type)
参考连接
https://www.cnblogs.com/xuanlanbinfen/articles/16515170.html