如何使用python请求库或其他wis找到重定向的url

2024-10-02 08:18:17 发布

您现在位置:Python中文网/ 问答频道 /正文

此url:

http://www.yellowpages.com.sg/newiyp/UrlRedirect?applicationInd=yp&searchType=68&searchCriteria=multiple+choices&accessType=8&advertiserName=Multiple+Choices&url=62CE8F02A1BE04A51C81F85D1CE8B54DFC608A9CDA925C15EED5DA6DD90E3F7DC99CFF77216D1D1083877BA841EB97C3

重定向到: http://www.callmyname.sg/view/Multiple+Choices/Uk9JRC9TRzA0SkstQkJDNkRFNTEuMTNCNS9FRDY5LUE4NzgtRUY=

当我使用请求时:

import requests
url = "http://www.yellowpages.com.sg/newiyp/UrlRedirect?applicationInd=yp&searchType=68&searchCriteria=multiple+choices&accessType=8&advertiserName=Multiple+Choices&url=62CE8F02A1BE04A51C81F85D1CE8B54DFC608A9CDA925C15EED5DA6DD90E3F7DC99CFF77216D1D1083877BA841EB97C3"
headers = {'User-Agent':'user_agent',}
r = requests.get(url,headers=headers)
r.url

它返回相同的第一个url,而不是重定向的url


Tags: comhttpurlwwwmultiplesgheaderschoices
3条回答

此站点似乎需要会话cookie才能使重定向生效。在

r.url实际上在重定向(unless you have changed the configuration)之后显示了URL。在

如果你的cookie没有出现重定向问题的话。您可以通过在匿名/私有模式下使用浏览器访问URL来进行测试。您将看到来自http://www.yellowpages.com.sg/的错误消息,状态代码为200。重新加载后,您将被重定向。在

奇怪的是,即使使用requests会话,也无法获得重定向。使用真实浏览器的用户代理字符串似乎也没有帮助。您可能需要详细比较这两个请求,以找出关键的区别。在

我尝试的代码如下所示:

import requests
headers = {'User-Agent': 'user_agent',}
s = requests.Session()
url = "http://www.yellowpages.com.sg/"
r = s.get(url, headers=headers)
url = "http://www.yellowpages.com.sg/newiyp/UrlRedirect?applicationInd=yp&searchType=68&searchCriteria=multiple+choices&accessType=8&advertiserName=Multiple+Choices&url=62CE8F02A1BE04A51C81F85D1CE8B54DFC608A9CDA925C15EED5DA6DD90E3F7DC99CFF77216D1D1083877BA841EB97C3"
r = s.get(url, headers=headers)
r.url

根据请求文档,r.history是您需要的。在

这是样品。我用过一点点因为我用你的网址得到了403。在

>>> url = "http://bit.ly/18SuUzJ"
>>> r = requests.get(url, allow_redirects=False)
>>> r.status_code
301
>>> r.headers['Location']
'http://stackoverflow.com/'

相关问题 更多 >

    热门问题