我使用urllib2来获取网络链接的最终重定向网址。例如: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。
答案 0 :(得分:0)
问题是,在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'