エンジニアリングポイントapp爬虫類とsignアルゴリズムの解読
この世界は本当に誰でも持っています.ああ、分析を続けます.工程点の逆方向とパッケージング分析により,工程点は
x-sign
とtoken
の検証が必要であることが分かった.
token sign , 。 token
はusertokenを していますが、usertokenはどのように しますか? でログインインタフェースを すればいいです.ではsign
はどうやって たのでしょうか?? らかにmd 5は、 にどのようにしているのか、 の にかかわるので、あまり らかにすることはできません.どうせ パラメータをいくつか してからmd 5を しています.これらのパラメータを した 、 を く があります. コードを て、 き わっていません.
class GongCd(object):
def __init__(self, token=None):
self.headers = {
'Accept': 'application/json',
'token': '',
'X-Sign': '',
'Content-Type': 'application/json; charset=utf-8',
'Connection': 'Keep-Alive',
'Accept-Encoding': 'gzip',
'User-Agent': 'okhttp/3.9.1',
}
self.token = None
def data_md5(self, data,method):
# sign , 【 】
return md5.hexdigest()
def spider(self, url, method, data=None):
self.headers['X-Sign'] = self.data_md5(data)
self.headers['token'] = self.token
if method == 'GET':
res = requests.get(url, headers=self.headers)
else:
res = requests.post(url, data=json.dumps(data), headers=self.headers)
return res
gcd = GongCd()
def qiyeke(data):
#
res = gcd.spider('http://gcdd.koncendy.com/gcddv216/app/scsolrcompany/QueryHighLightList', 'POST',
data=data).text
if not res:
return
res_json = json.loads(res)
res_list = res_json.get('data').get('result')
pymg = MongoDB('EnterpriseRepository')
res_mg_list = []
id_list = []
for res in res_list:
id_list.append(res['enterpriseId'])
del res['parentId']
res_mg_list.append(res)