Python 3.10
Pycharm
nodejs
import requests --> pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple/
import execjs --> pip install pyexecjs -i https://pypi.tuna.tsinghua.edu.cn/simple/
import csv
python源码、视频教程、插件安装教程、资料我都准备好了,直接在文末名片自取就可
明确需求: 明确采集的网站以及数据
抓包分析: 分析数据对应的位置
请求网址: https://www.xiniudata.com/api/search3/company/search_company_for_lib
请求方法: post
请求参数: payload / sig
2023- LBcwWVcRKDslJCpgAh4IZRA3WUZJPSZTOSsNPzMiWyA5fCBLEnQdaxVteyFXNyUmQDVCUWYiJl07JzwuMwxWPHUPH2UcbCU1OjE2MFkxMBZRPUJNcDYnEHcVD2F0Jl09J1o2WUQrGT4hMi0wUSYhAFYnFA5iD3gQLiEgPTk3UzsyaiFLRC8kNiEyMQZZMTAWQSBXRk1wbgN7eWB4ZncGf2cFdAgcbCU1OjE2MFkxMBZXJ0JVWz49QSUKMzkzGlchMxd
2022- LBcwWVcRKDslJCpgAh4IZRA3WUZJPSZTOSsNPzMiWyA5fCBLEnQdaxVteyFXNyUmQDVCUWYiJl07JzwuMwxWPHUPH2UcbCU1OjE2MFkxMBZRPUJNcDYnEHcVD2F0Jl09J1o2WUQrGT4hMi0wUSYhAFYnFA5iD3gQLiEgPTk3UzsyaiFLRC8kNiEyMQZZMTAWQSBXRk1wbgN7emJ0YHMGf2cFdAgcbCU1OjE2MFkxMBZXJ0JVWz49QSUKMzkzGlchMxd
2023- 5EACCB9741DD3A605198550CEAB12C75
2022- E7CE2AC7CAE990A036B44ED29F4C0FC9
分析 payload / sig 如何生成的
点击启动器 / 关键字搜索, xhr 先断点查看代码
进入JS代码 进行断点调试
找到对应的加密 -> 扣代码
发送请求
获取数据
解析数据
保存数据
导入模块
'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
# 导入编译JS代码模块
import execjs
# 导入数据请求模块
import requests
# 导入json模块
import json
# 导入时间处理模块
import datetime
“”"
“”"
# 模拟浏览器
headers = {
'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36'
}
# 请求网址
url = 'https://www.xiniudata.com/api/search3/company/search_company_for_lib'
“”"
通过python代码去调用js代码
“”"
'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
# 请求参数
l = {
"tag_names": [],
"corporate_regionIds": [
1
],
"corporate_provinceIds": [],
"corporate_cityIds": [],
"corporate_districtIds": [],
"corporate_establishDate_start": 1672502400000,
"corporate_establishDate_end": 1703952000000,
"funding_fundingDate_start": "null",
"funding_fundingDate_end": "null",
"corporate_locationIds": [],
"corporate_rounds": [],
"operator": "and",
"notFromGongshang": "true",
"sort": 76006,
"order": -1,
"start": 0,
"limit": 20
}
# 读取js代码
f = open('data.js', encoding='utf-8').read()
# 编译js代码
js_code = execjs.compile(f)
# 调用js代码函数
res = js_code.call('get_data', l)
# 构建请求参数
data = {
'payload': res['payload'],
'sig': res['sig'],
'v': 1,
}
# 发送请求
response = requests.post(url=url, json=data, headers=headers)
# 2. 获取响应数据
json_data = response.json()
# 3. 解析数据
d = json_data['d'] # 密文数据
# 调用js代码 获取响应数据 明文数据
d_res = js_code.call('get_response', d)
# 转成json字典数据
d_json = json.loads(d_res)
# 列表推导式 获取 company_code 列表
codes = [i['company_code'] for i in d_json['data']]
code_dit = {"codes": codes}
“”"
获取第二个链接请求参数密文
“”"
'''
python资料获取看这里噢!! 小编 V:Pytho8987(记得好友验证备注:6 否则可能不通过)
即可获取:文章源码/教程/资料/解答等福利,还有不错的视频学习教程和PDF电子书!
'''
res_two = js_code.call('get_data', code_dit)
# 构建请求参数
data_two = {
'payload': res_two['payload'],
'sig': res_two['sig'],
'v': 1,
}
# 请求网址
link = 'https://www.xiniudata.com/api2/service/x_service/person_company4_list/list_companies4_list_by_codes'
# 发送请求
response = requests.post(url=link, json=data_two, headers=headers).json()['d']
info_list = js_code.call('get_response', response)
info_json = json.loads(info_list)
for index in info_json['list'][1:]:
establishDate = int(str(index['establishDate'])[:-3]) # 建立时间戳
# 转成日期
time_1 = str(datetime.datetime.fromtimestamp(establishDate))
fundingDate = int(str(index['funding']['fundingDate'])[:-3]) # 融资时间戳
time_2 = str(datetime.datetime.fromtimestamp(fundingDate))
dit = {
'公司': index['name'],
'领域': index['brief'],
'行业领域': index['tagNameList'],
'国家': index['regionName'],
'省份': index['provinceName'],
'城市': index['locationName'],
'成立日期': time_1,
'融资日期': time_2,
'当前轮次': index['funding']['roundName'],
'融资金额': json.loads(index['funding']['fundingDesc'])['money'],
}
# pprint.pprint(json.loads(index['funding']['fundingDesc'])['investorStr'])
print(dit)
感谢你观看我的文章呐~本次航班到这里就结束啦 🛬
希望本篇文章有对你带来帮助 🎉,有学习到一点知识~
躲起来的星星🍥也在努力发光,你也要努力加油(让我们一起努力叭)。