【问题标题】:How to get the final redirected URL which has some JavaScript's?如何获得包含一些 JavaScript 的最终重定向 URL?
【发布时间】:2016-01-17 13:24:44
【问题描述】:

我使用 urllib2 来获取最终重定向的网络链接 url。例如:http://tbk.bz/t72qx4v3 我得到的链接是:

http://taskbucks.com/artcl_out?artcl=24713df2ffb748ec8464638df61d2298

但是,浏览器给出了这样的重定向最终 URL:

www.holidayiq.com/blog/6-high-octane-adventure-sports-in-india-that-will-get-your-heart-in-your-throat-1831.html/

我希望在 python 中获得这个最终 URL。

【问题讨论】:

  • 发布你的代码sn-p

标签: python python-2.7 web-scraping urllib2


【解决方案1】:

问题在于,在http://taskbucks.com/artcl_out?artcl=24713df2ffb748ec8464638df61d2298 页面上,有一个“文档就绪”事件侦听器,它使浏览器在加载时提交一个表单,最终会将您重定向到最终页面:

<script type="text/javascript">
    $(document).ready(function() {
        $("#fsid").val(new Fingerprint().get());
        $("#fsidpe").val(new Fingerprint({canvas: true}).get());
        submitReport();
    });
    function submitReport() {
        $("#articleCheck").submit();
    }
</script>

urllib2 不是浏览器,不会在页面加载时提交表单。

相反,我会使用Mechanize 之类的工具来提交此表单:

>>> import mechanize
>>> 
>>> br = mechanize.Browser()
>>> br.open("http://tbk.bz/t72qx4v3")
>>> br.select_form("articleCheck")
>>> br.submit()
>>> br.geturl()
'http://www.holidayiq.com/blog/6-high-octane-adventure-sports-in-india-that-will-get-your-heart-in-your-throat-1831.html?utm_source=taskbucks&utm_medium=share&utm_campaign=referral&channel=taskbucks'

【讨论】:

  • 我正在尝试通过添加来添加唯一的用户代理。 br.addheaders=[('User-agent','Android')]
猜你喜欢
  • 2021-02-15
  • 1970-01-01
  • 2012-01-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-11
  • 1970-01-01
  • 2014-12-07
相关资源
最近更新 更多