5. 百度指数逆向
只用于技术研究,不允许非法用途
获取指数数据
源码
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
# @File : main.py
# Author: xiaonuo
import requests
#登陆
def login():
pass
def get_core_data(key,start_data,end_data):
url = "https://index.baidu.com/api/SearchApi/index"
headers = {
"Accept": "application/json, text/plain, */*",
"Accept-Language": "zh-CN,zh;q=0.9",
"Cipher-Text": "1720782373175_1720835449502_DAuT+5X4udakfYIjD1YKEaJhbhajsBZ9aetHMZqsZ5frmvbJEqKOucR4A2vqmf8JWk968nswSNrVsUQvMZnJw/wtl0D4P1ZJoG7jXwdqPM91PZiDQqgz0Ju7gvVniA2VSf5cWs2TLMJUWoqrICHGA6Cpa43o42fQHfyTkKUd0XuE+P5Zjun9JxEJCMyu56vDGmNq01akpY1IKneKFhCWSIgRfTfMYIcJiShxpwwDSm2ZimyEvAlWDWknt/xJorvHnzeGugOzxxguZcT8Hvd0gQHgSYhITd1pONu8YQdX2VUcxmdNW9Yq96by9C0df1mu9Kyua7lkSsg6gQXamoh85pnbFjGicsS3PZAx6fmXxK8=",
"Connection": "keep-alive",
"Referer": "https://index.baidu.com/v2/main/index.html",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
"sec-ch-ua": '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "Windows",
# 需要登录后获取到Cookie
"Cookie": 'BIDUPSID=97DF255CA2EFE0C332EC354C0B407B0C; PSTM=1719675318; BAIDUID=97DF255CA2EFE0C353A9987DDAF59E97:FG=1; MAWEBCUID=web_wJBFdBUkdtbuByvVWVLjidpxdYRXdHYuIflHhjIntsXiIeDdaM; H_PS_PSSID=60359_60451; H_WISE_SIDS=60359_60451; BAIDUID_BFESS=97DF255CA2EFE0C353A9987DDAF59E97:FG=1; BA_HECTOR=0haka421002ha4ah8gag25212himn71j92f2u1v; ZFY=TsIo8sfiTPnG33hDaONuHalMFI9gS9I:AUpsdXasIbHY:C; BDRCVFR[Zh1eoDf3ZW3]=mk3SLVN4HKm; delPer=0; PSINO=2; Hm_lvt_d101ea4d2a5c67dab98251f0b5de24dc=1720834149; HMACCOUNT=5DD6C165BB58DBA8; BDUSS=GZ2R0NqfjVkc0MtRFQ1VkwwUnpIYVRKUFNHOUFtWkgzUW1hYXlHcUVqfkdacmxtRUFBQUFBJCQAAAAAAAAAAAEAAAB80V05bW9tb1FMNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbZkWbG2ZFmS; SIGNIN_UC=70a2711cf1d3d9b1a82d2f87d633bd8a047084695227izXZzskoN88nwM+8gwFi5aGyGSDh1z2gHUucD8+O8GtV5mkzcDfi9spllXioIVqVE5UsD308Emlu/edTXPZmgxkV3d1tvy/R3k0qTTy6Z7YYrwGZU+GqP9rd/uEJRoruwKqXbmp1gj2PXISZRRZEogt4Dgb9r7NItcChF5ZZjIJMOQ85YS+ZtVj3VHPwb0oKzoGDmKTJJcuTfV4APzkuILZ6d55XVrACifsJkIPaOsm1HNibpGsxhcB7bm6NH0iwqZxnC2ygHQPz3vfiFyHbw==84553790194574661154873517527565; __cas__rn__=470846952; __cas__st__212=c424931adc23d828d13c39cf63a57a133a7e94271a79ba3cf2a7b71079bab1fd16398b596f0919fc598871b2; __cas__id__212=56998968; CPTK_212=844547926; CPID_212=56998968; Hm_lpvt_d101ea4d2a5c67dab98251f0b5de24dc=1720834505; BDUSS_BFESS=GZ2R0NqfjVkc0MtRFQ1VkwwUnpIYVRKUFNHOUFtWkgzUW1hYXlHcUVqfkdacmxtRUFBQUFBJCQAAAAAAAAAAAEAAAB80V05bW9tb1FMNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbZkWbG2ZFmS; ab_sr=1.0.1_NjMyMzc4NmI4NTIzNzY2NTYwNDE5ZjkzOGQwNjFmMGI3YjBiYzI5MDk3MTc4YjRlNjNkNTczMzIxNGQzNGU1YTE4NDA3M2JlNzJiMDU5MGUwNmY4MmU1MGZjMDgwMDY0M2EyNjE3NjcwZDgzYmZmNjdmMWM0MDNlNTg0Y2UyZmQ0MWQxYzgyMGY1NTI5Y2JhMDE4MDMwZDE2YzZkNGE0NA==; bdindexid=14talrepe0m0sa2f4h06bdcvu3; H_WISE_SIDS_BFESS=60359_60451; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; RT="z=1&dm=baidu.com&si=59625d1b-e656-43f3-9a1e-90bb89e4fb36&ss=lyjg7z2g&sl=r&tt=h0b&bcn=https://fclog.baidu.com/log/weirwood?type=perf&ld=rlj5"'
}
querystring = {
"area":"0",
"word":"[[{\"name\":\""+key+"\",\"wordType\":1}]]",
"startDate": start_data,
"endDate": end_data
}
response = requests.request("GET", url, headers=headers, params=querystring)
if response.json()['status'] !=0:
print(response.text)
#获取data
data = response.json()['data']['userIndexes'][0]['all']['data']
uniqid = response.json()['data']['uniqid']
return (uniqid,data)
def get_data_by_uniqid(uniqid_data):
url = "https://index.baidu.com/Interface/ptbk"
querystring = {"uniqid":uniqid_data}
headers = {
"Accept": "application/json, text/plain, */*",
"Accept-Language": "zh-CN,zh;q=0.9",
"Connection": "keep-alive",
"Referer": "https://index.baidu.com/v2/main/index.html",
"Sec-Fetch-Dest": "empty",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Site": "same-origin",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
"sec-ch-ua": '"Not/A)Brand";v="8", "Chromium";v="126", "Google Chrome";v="126"',
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": '"Windows"',
"Cookie": 'BIDUPSID=97DF255CA2EFE0C332EC354C0B407B0C; PSTM=1719675318; BAIDUID=97DF255CA2EFE0C353A9987DDAF59E97:FG=1; MAWEBCUID=web_wJBFdBUkdtbuByvVWVLjidpxdYRXdHYuIflHhjIntsXiIeDdaM; H_PS_PSSID=60359_60451; H_WISE_SIDS=60359_60451; BAIDUID_BFESS=97DF255CA2EFE0C353A9987DDAF59E97:FG=1; BA_HECTOR=0haka421002ha4ah8gag25212himn71j92f2u1v; ZFY=TsIo8sfiTPnG33hDaONuHalMFI9gS9I:AUpsdXasIbHY:C; BDRCVFR[Zh1eoDf3ZW3]=mk3SLVN4HKm; delPer=0; PSINO=2; Hm_lvt_d101ea4d2a5c67dab98251f0b5de24dc=1720834149; HMACCOUNT=5DD6C165BB58DBA8; BDUSS=GZ2R0NqfjVkc0MtRFQ1VkwwUnpIYVRKUFNHOUFtWkgzUW1hYXlHcUVqfkdacmxtRUFBQUFBJCQAAAAAAAAAAAEAAAB80V05bW9tb1FMNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbZkWbG2ZFmS; SIGNIN_UC=70a2711cf1d3d9b1a82d2f87d633bd8a047084695227izXZzskoN88nwM+8gwFi5aGyGSDh1z2gHUucD8+O8GtV5mkzcDfi9spllXioIVqVE5UsD308Emlu/edTXPZmgxkV3d1tvy/R3k0qTTy6Z7YYrwGZU+GqP9rd/uEJRoruwKqXbmp1gj2PXISZRRZEogt4Dgb9r7NItcChF5ZZjIJMOQ85YS+ZtVj3VHPwb0oKzoGDmKTJJcuTfV4APzkuILZ6d55XVrACifsJkIPaOsm1HNibpGsxhcB7bm6NH0iwqZxnC2ygHQPz3vfiFyHbw==84553790194574661154873517527565; __cas__rn__=470846952; __cas__st__212=c424931adc23d828d13c39cf63a57a133a7e94271a79ba3cf2a7b71079bab1fd16398b596f0919fc598871b2; __cas__id__212=56998968; CPTK_212=844547926; CPID_212=56998968; Hm_lpvt_d101ea4d2a5c67dab98251f0b5de24dc=1720834505; BDUSS_BFESS=GZ2R0NqfjVkc0MtRFQ1VkwwUnpIYVRKUFNHOUFtWkgzUW1hYXlHcUVqfkdacmxtRUFBQUFBJCQAAAAAAAAAAAEAAAB80V05bW9tb1FMNgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbZkWbG2ZFmS; ab_sr=1.0.1_NjMyMzc4NmI4NTIzNzY2NTYwNDE5ZjkzOGQwNjFmMGI3YjBiYzI5MDk3MTc4YjRlNjNkNTczMzIxNGQzNGU1YTE4NDA3M2JlNzJiMDU5MGUwNmY4MmU1MGZjMDgwMDY0M2EyNjE3NjcwZDgzYmZmNjdmMWM0MDNlNTg0Y2UyZmQ0MWQxYzgyMGY1NTI5Y2JhMDE4MDMwZDE2YzZkNGE0NA==; bdindexid=14talrepe0m0sa2f4h06bdcvu3; H_WISE_SIDS_BFESS=60359_60451; BDRCVFR[feWj1Vr5u3D]=I67x6TjHwwYf0; BDORZ=FFFB88E999055A3F8A630C64834BD6D0; RT="z=1&dm=baidu.com&si=59625d1b-e656-43f3-9a1e-90bb89e4fb36&ss=lyjg7z2g&sl=r&tt=h0b&bcn=https://fclog.baidu.com/log/weirwood?type=perf&ld=rlj5"'
}
response = requests.request("GET", url, headers=headers, params=querystring)
return response.json()['data']
def decrypt(t, e):
if not t:
return ""
i = list(t)
n = list(e)
a = {}
r = []
for A in range(len(i) // 2):
a[i[A]] = i[len(i) // 2 + A]
for o in range(len(e)):
r.append(a[n[o]])
return "".join(r)
def main(key,start_date,end_date):
# 真实数据
data1 = get_core_data(key,start_date,end_date)
print(data1)
data2 = get_data_by_uniqid(data1[0])
#解密
result = decrypt(data2,data1[1])
print(result)
if __name__ == '__main__':
key = 'python'
start_date = '2024-06-13'
end_date = '2024-07-12'
main(key,start_date,end_date)
评论区