Python 无论如何,要刮一个链接重定向?

Python 无论如何,要刮一个链接重定向?,python,parsing,web-scraping,beautifulsoup,lxml,Python,Parsing,Web Scraping,Beautifulsoup,Lxml,我是否可以让python单击一个链接,比如bit.ly链接,然后刮取结果链接?当我抓取某个页面时,我能抓取的唯一链接是重定向的链接,它重定向到的位置就是我需要的信息所在的位置。有3种重定向类型 HTTP-作为响应头中的信息(带有代码,3xx) HTML-作为HTML中的标签(维基百科:) JavaScript-类似于window.location=new\u url 请求执行HTTP重定向,并将所有URL保存在r.history import requests r = requests.g

我是否可以让python单击一个链接,比如bit.ly链接,然后刮取结果链接?当我抓取某个页面时,我能抓取的唯一链接是重定向的链接,它重定向到的位置就是我需要的信息所在的位置。

有3种重定向类型

  • HTTP
    -作为响应头中的信息(带有代码,3xx)
  • HTML
    -作为HTML中的标签
    (维基百科:)
  • JavaScript
    -类似于
    window.location=new\u url
请求
执行
HTTP
重定向,并将所有URL保存在
r.history

import requests

r = requests.get('http://' + 'bit.ly/english-4-it')

print(r.history)
print(r.url)
结果:

[<Response [301]>, <Response [301]>]
http://helion.pl/ksiazki/english-4-it-praktyczny-kurs-jezyka-angielskiego-dla-specjalistow-it-i-nie-tylko-beata-blaszczyk,anginf.htm
[,]
http://helion.pl/ksiazki/english-4-it-praktyczny-kurs-jezyka-angielskiego-dla-specjalistow-it-i-nie-tylko-beata-blaszczyk,anginf.htm


顺便说一句:所以不允许在文本中放置位链接,所以我使用了连接。

是的。但是如果我们不能更准确地知道你的程序的功能,我们就不知道如何修复它。请提供一个简短(五行或六行)完整的程序来演示您的问题。你的问题要包括整个问题。谢谢<代码>请求自动执行
HTTP
重定向,并在
r.history
中保留有关所有URL的信息。如果页面使用
HTML
重定向(在
标记中),那么您可以很容易地找到它,并将
请求
与此url一起使用<代码>请求不仅可以重定向
JavaScript
重定向,因为它不执行JavaScript,而且有太多可能的重定向方法来查找代码中的url。如果页面使用JavaScript,那么您可以使用
Selenium
(或类似模块)打开web浏览器(将在页面上执行所有JavaScript)和控制web浏览器并获取数据,单击按钮等。如果您知道,该页面重定向到url,带有
?variant=33334400198
,那么您可以分析HTML和JavaScript以找到它,每次都从代码中获取新值。请详细说明?我无法找到与该
?variant=33334400198
和该产品的关联,因此将该字符串添加到html中似乎是不可能的,Selenium是获得该url的唯一方法吗?有时,所有信息都是HTML或其他文件(如javaScripts)中的信息,或者是AJAX/JavaScript读取的数据,要找到这些信息很困难。但是当您找到它时,您可以轻松地在代码中使用它。但是如果你找不到它,那么你必须使用
Selenium
或其他可以执行JavaScript代码的工具/模块(即
PhantomJS
PyQt-WebKit-widget
)。