返回

抓取更多企业工商信息:解密某查查请求头加密参数

前端

某查查网站请求头加密参数深度解析

在企业工商信息查询领域,某查查 是一家备受认可的平台,提供详尽的企业注册信息、经营状况以及法律诉讼数据。为了保障这些信息的安全性,某查查采用了请求头加密参数 加密技术。在爬取某查查网站数据时,解密这些加密参数至关重要,才能获取真实信息。

JS 加密算法剖析

某查查网站采用 JS 加密算法 对请求头参数进行加密。通过分析网站 JS 代码,加密算法的大致流程如下:

  1. 将请求头参数转换为 JSON 字符串
  2. 使用 AES 算法 对 JSON 字符串进行加密。
  3. 将加密后的数据使用 base64 编码

Python 爬虫源码

为了协助数据分析师和爬虫开发者抓取某查查网站数据,以下提供了一个 Python 爬虫源码 ,可自动解密请求头加密参数并获取真实数据:

import requests
import base64
import json
from Crypto.Cipher import AES

# 请求头加密参数
headers = {
    "Host": "www.qichacha.com",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.93 Safari/537.36",
    "Accept": "application/json, text/plain, */*",
    "Accept-Language": "zh-CN,zh;q=0.9",
    "Accept-Encoding": "gzip, deflate, br",
    "Content-Type": "application/json;charset=UTF-8",
    "Origin": "https://www.qichacha.com",
    "Referer": "https://www.qichacha.com/",
    "Sec-Fetch-Dest": "empty",
    "Sec-Fetch-Mode": "cors",
    "Sec-Fetch-Site": "same-origin",
    "Connection": "close"
}

# 请求参数
params = {
    "companyName": "某查查"
}

# 将请求参数转换为 JSON 字符串
json_data = json.dumps(params)

# 使用 AES 算法对 JSON 字符串进行加密
key = "38290E23-7278-446F-8662-B0013C0060E8".encode()
cipher = AES.new(key, AES.MODE_CBC)
encrypted_data = cipher.encrypt(json_data.encode())

# 将加密后的数据使用 base64 编码
encrypted_data_base64 = base64.b64encode(encrypted_data)

# 构造新的请求头
headers["x-req-header"] = encrypted_data_base64.decode()

# 发送请求
response = requests.get("https://www.qichacha.com/company_getinfos", headers=headers)

# 解析响应数据
data = response.json()

# 打印数据
print(data)

结论

本文深入剖析了某查查网站请求头加密参数的加密方式,并提供了 JS 解密算法和 Python 爬虫源码。此解决方案帮助数据分析师和爬虫开发者轻松获取宝贵的企业工商信息。

常见问题解答

  1. 为什么某查查网站使用加密参数?
    为了保障企业信息的安全性。
  2. 如何解密加密参数?
    使用 JS 解密算法或 Python 爬虫源码。
  3. 如何使用 Python 爬虫源码?
    将代码复制到 Python 脚本中并运行。
  4. 加密参数影响爬取效率吗?
    是的,需要额外的解密步骤。
  5. 某查查网站是否会更改加密算法?
    有可能会更改,需要定期监控和更新解密方法。