【问题标题】:How to get the redirect URL by using python requests get如何使用 python requests get 获取重定向 URL
【发布时间】:2021-07-16 01:48:00
【问题描述】:

这是我获取重定向 URL 的代码。是为了教育目的。我觉得该请求被检测为机器人,因此网站显示为 reCaptcha,尽管我使用了假用户代理和代理。在使用 requests.get 之前,我没有获得不同的链接,而是获得了相同的 url。有什么办法解决吗?

import requests
from fake_useragent import UserAgent
ua = UserAgent()
hdr = {'User-Agent': ua.random,
      'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
      'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',
      'Accept-Encoding': 'none',
      'Accept-Language': 'en-US,en;q=0.8',
      'Connection': 'keep-alive'}
PROXY = {"http":"http://X.X.X.X:YYYY"}
url = "https://avxhm.se/go/6074475/0/"
response = requests.get(url, allow_redirects=True, headers=hdr, proxies = PROXY)
print(response.url)

【问题讨论】:

  • 这能回答你的问题吗? Python Requests library redirect new url
  • 对不起,这不是答案。我试图找到一种绕过机器人检测的方法。我的代码在其他网站上运行良好,而不是在这个特定网站上。

标签: python web-scraping data-mining


【解决方案1】:

一个技巧是用requests.Session() 封装你的调用。因此,当带有标头的请求不起作用时,会话就派上用场了!

import requests


url = 'https://avxhm.se/go/6074475/0/'

user_agent = {'User-agent': '14.0.3 Safari'}

session = requests.Session()
r1 = session.get(url, headers=user_agent)
print(r1.url)

【讨论】:

  • 不知道你有没有测试过?它对我不起作用。老实说,我也已经尝试过 session.get ,结果没有任何变化。例如,当您运行此代码 10 次,并且您的 IP 在黑名单中,因此他们将打开 reCaptcha。我的目标是一个可以一直通过代理获取最终 URL 而无需任何 reCaptcha 的 sn-p。
  • 当然,它给了我“icerbox.com/l8R23pmO/B0882YW2CW.epub
  • 请尝试运行它大约 10 或 20 次,然后,如果您没有代理,您将永远卡住。即使你有代理,你仍然会卡住。
  • 如果我用Selenium来模拟浏览器,效果很好。但是 Selenium 的性能很差。这就是为什么我尝试更改为 requests get 方法。
猜你喜欢
  • 2011-06-21
  • 1970-01-01
  • 2013-12-26
  • 2019-06-21
  • 2012-10-04
  • 1970-01-01
  • 1970-01-01
  • 2021-07-15
相关资源
最近更新 更多