吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1391|回复: 23
收起左侧

[已解决] python爬取标签接口遇到的问题

[复制链接]
Dellevin 发表于 2024-4-7 10:17
25吾爱币
请问针对这种接口带有加密字段的该怎么获取数据,我通过cookies发送还是不行,是我的操作问题吗?
[Python] 纯文本查看 复制代码
import requests

def get_company_label_with_cookies_and_payload(url, cookies, payload):
    # 构造请求头,包含cookies信息
    headers = {
        'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
    }
    # 发送 POST 请求并包含cookies信息和payload数据
    response = requests.post(url, headers=headers, cookies=cookies, json=payload)

    # 检查响应状态码
    if response.status_code == 200:
        return response.json()
    else:
        print("请求失败:", response.status_code)
        return None


if __name__ == "__main__":
    api_url = 'https://b-plugin.qixin.com/api/supplierApi/commonApi/entInfo/getEntLabel'

    cookies = {
        'flogger_fpid': 'd723afa6646f3f0b66bd9477f20daf9a',
        'ssxmod_itna': 'YqUxBDgG5Dqx9Dl4iqYI7p0Fei=GOfQIQY042DBLfd4iNDnD8x7YDv+moO+K7KS0AWfGs0DSr3qNIjbqxpOb278XYDU4i8DCMuDQsxem=D5xGoDPxDeDADYE6DAqiOD7qDdfhTXtkDbxi3fxiaDGeDeEKODY5DhxDC0mPDwx0CfZ05QA9hO6BCTKy55FrPfxG1a40H1ASINU8LQmyhwF3GEiKDXEdDvayCS6cmDBbkMO5GZnnDTexNq7iesmRDOlq4K7Gi5chx1G05Qhx4HuDY1lcPljtDiaxqHAUDD=',
        'ssxmod_itna2': 'YqUxBDgG5Dqx9Dl4iqYI7p0Fei=GOfQIQY04x8q18SqGXo=GaKSQmL7K1LKms/gSqtCaCch7Kzosjjb25=Moqidazt0BmfYMg8GNLeA2G5iLQ0=2CcCBmzuSTpqbkcHpIOkXanyvyhqxs6paZE5bKbuDspAYXZHkwgcw3fnWAxgO1cniWccGh=naqz9h0WPi3aBmSacmq47PwtA1a0EdWgOPZ=YaeQr8D2RqXicDynr8gpM=NfW8BaLQqavr91SOBxHf43W7ufo46=UbYBIPnlrYd1jyUMUbWaAf=PBXXvryQsC+fSMDKyvzHDsPmt9O35Ddm4up/05VUpxpy7jRxdnClpwWqQG0kA2eSGr4eXtAkI+liRE+5mS2mSDbR4q3TYfR9e+vSPNfAnBhvKpWjTNLY6CxNkE=E98zRR8b8bwRCAQFIlKyRlaokfqxRa1BFnf7ISM/GDxaU/iCCIZSDKu7U3FkSgXmaZzLv9T3P8HvyOzIZ/Gw/yO6PiuaxoExRa+3llb3V4wCppyjpoLbrkQaWa+2CsS0kL+t2HllaCIuqixDKwH3YFdqeduDBO4jI5ugcBY9RDxQDDLxD27GDD==',
        'sid': 's%3A5Z2W1SCjv4KC14_o5Czj2DfNgcB99dbz.%2BBzQG9oEwrp%2B9R8vqznibZ7YgZE1dvhSHqIu4RqBFxI',
        'aliyungf_tc': '53c02b50bd62534e99bbf7436ab0a2141ba1f02034c2a29135078e4be3eeee3f',
        'acw_tc': 'ac11000117124532719681480e3ae5415231d55c62649491685d4b8b4233ae'
    }

    # 请求的payload数据
    payload = {
        'eid': 'feb3c224-9f4e-4a63-9b2b-d6caffc37d00'
    }

    # 发送请求并获取响应数据
    result = get_company_label_with_cookies_and_payload(api_url, cookies, payload)
    if result:
        print(result)

微信图片_20240407101105.png


之前我一直用的Selenium 我现在觉得效率太低了,还需要打开页面,等待接口加载完毕后才可以爬取,所以想改一下从接口直接cookies发送数据获取,然后cookies过期了刷新cookies再次重新获取

最佳答案

查看完整内容

让浏览器和 Python 都走你的抓包程序(Charles / Fiddler 等),然后对比下二者的请求有什么不同。 你截图里的请求头对比你的代码缺了很多(Accept-Encoding 可以暂时无视)。如果你要直接从脚本请求,你要分析他网站是怎么计算的这些头,并补上。 当你用 Selenium 浏览器时,其实是直接进行网页交互,因此只需要分析如何触发的对应事件(模拟键盘输入、点击等),而不需要分析具体请求构造。

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

爱飞的猫 发表于 2024-4-7 10:17
让浏览器和 Python 都走你的抓包程序(Charles / Fiddler 等),然后对比下二者的请求有什么不同。

你截图里的请求头对比你的代码缺了很多(Accept-Encoding 可以暂时无视)。如果你要直接从脚本请求,你要分析他网站是怎么计算的这些头,并补上。

当你用 Selenium 浏览器时,其实是直接进行网页交互,因此只需要分析如何触发的对应事件(模拟键盘输入、点击等),而不需要分析具体请求构造。

免费评分

参与人数 1吾爱币 +2 热心值 +1 收起 理由
hdxzd12 + 2 + 1 用心讨论,共获提升!

查看全部评分

jidesheng6 发表于 2024-4-7 10:23
不需要通过cookie发送,甚至你的cookie只需要一起构造到headers里面就够了,requests的cookie参数我就没用过,都是直接header传值
 楼主| Dellevin 发表于 2024-4-7 10:28
jidesheng6 发表于 2024-4-7 10:23
不需要通过cookie发送,甚至你的cookie只需要一起构造到headers里面就够了,requests的cookie参数我就没用 ...

这样我试过,也不行,我总是感觉有加密字段的原因
jidesheng6 发表于 2024-4-7 10:29
Dellevin 发表于 2024-4-7 10:28
这样我试过,也不行,我总是感觉有加密字段的原因

那个字段可能是动态生成的key,传输的时候动态带过去的
xiaoye123 发表于 2024-4-7 10:34
试试打个xhr或者跟一下值 看看他是怎么生成的 可能会有动态值在里面 逆向看看
 楼主| Dellevin 发表于 2024-4-7 10:47
jidesheng6 发表于 2024-4-7 10:29
那个字段可能是动态生成的key,传输的时候动态带过去的

我看别人说需要js逆向,我还没接触过,我看sources里面一个资源都没有
Pwaerm 发表于 2024-4-7 10:55
我一直困惑,为什么爬数据大家选用python,用python也需要去解读网页中的js

那为什么不直接用js来获取数据呢,直接用js可以直接改写原网页中的代码,可以省去很多逆向的复杂问题。
 楼主| Dellevin 发表于 2024-4-7 10:58
Pwaerm 发表于 2024-4-7 10:55
我一直困惑,为什么爬数据大家选用python,用python也需要去解读网页中的js

那为什么不直接用js来获取数 ...

python对新手比较简单吧,而且库比较多。。。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
Pwaerm + 1 + 1 用心讨论,共获提升!

查看全部评分

Pwaerm 发表于 2024-4-7 11:07
Dellevin 发表于 2024-4-7 10:58
python对新手比较简单吧,而且库比较多。。。

我的意思,爬取网络数据,多数都要基于js逆向。
能读懂并且逆向js,也不算新手呀。

纯粹的新手,仅会python也爬不了数据吧。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 16:58

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表