python request等价于curl -L

0h4hbjxa  于 2024-01-08  发布在  Python
关注(0)|答案(1)|浏览(107)

curl -L在重定向时保留标头。
我目前正在查看一个第三方URL,它具有正常的curl(允许重定向),如下所示 *(这与我使用python请求获得的响应相同。

$curl https://[xxx].fr/[xxxx]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>307 Temporary Redirect</title>
</head><body>
<h1>Temporary Redirect</h1>
<p>The document has moved <a href="/redirect?token=lfbzjv3m2yabpbb8tggjjmsgz2">here</a>.</p>
</body></html>

字符串
使用curl -L,我看到以下内容

$curl -L https://[xxx].fr/[xxxx]
<html>
 <head>
  <title>Detection des bots</title>
 </head>
 <body>
  <h1>Bot detecte.</h1>
 </body>
</html>


尽管这揭示了第三方cruft在服务器上,我想确保我得到“检测des机器人”消息,而不是“307临时重定向”消息。
我会将实际的url作为注解(一旦找到解决方案,我会随后删除它,因为url可能会被修改)。
我的目的是提供一个有意义的第三方链接状态报告-没有恶意的意图。'检测des机器人'对我来说已经足够好了。

xxhby3vn

xxhby3vn1#

下面是你想要从URL中获取数据的python代码:

import requests

url = "PUT-YOUR-URL-HERE"

payload = {}
headers = {
  'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7',
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

字符串
我建议使用user-agent和其他请求头参数来不被检测为bot。您可以使用user-agents python库来生成自定义用户代理

相关问题