Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/350.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用python请求获取重定向URL_Python_Web Scraping_Data Mining - Fatal编程技术网

如何使用python请求获取重定向URL

如何使用python请求获取重定向URL,python,web-scraping,data-mining,Python,Web Scraping,Data Mining,这是我获取重定向URL的代码。这是为了教育目的。我觉得这个请求被检测为bot,所以这个网站变成了reCaptcha,尽管我使用了假的用户代理和代理。在使用requests.get之前,我没有得到不同的链接,而是得到了相同的url。有没有办法解决这个问题 import requests from fake_useragent import UserAgent ua = UserAgent() hdr = {'User-Agent': ua.random, 'Accept': 'text

这是我获取重定向URL的代码。这是为了教育目的。我觉得这个请求被检测为bot,所以这个网站变成了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)

一个技巧是使用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。当然,它会给我“”请尝试运行10或20次,然后,如果没有代理,您将永远陷入困境。即使你有代理,你仍然会被卡住。如果我使用Selenium来模拟浏览器,它工作得很好。但是Selenium的性能非常差。这就是为什么我试图改变请求获取方法。