在Python中,我如何检查2个不同的链接是否实际指向同一页面?

时间:2011-06-02 21:07:04

标签: python urllib2

2 个答案:

答案 0 :(得分:12)

geturl()的结果上致电urllib2.urlopen()geturl()“返回检索到的资源的URL,通常用于确定是否遵循重定向。”

例如:

#!/usr/bin/env python
# coding: utf-8

import urllib2

url1 = 'http://www.independent.co.uk/life-style/gadgets-and-tech/news/chinese-blamed-for-gmail-hacking-2292113.html'
url2 = 'http://www.independent.co.uk/life-style/gadgets-and-tech/news/2292113.html'

for url in [url1, url2]:
    result = urllib2.urlopen(url)
    print result.geturl()

输出结果为:

http://www.independent.co.uk/life-style/gadgets-and-tech/news/chinese-blamed-for-gmail-hacking-2292113.html
http://www.independent.co.uk/life-style/gadgets-and-tech/news/chinese-blamed-for-gmail-hacking-2292113.html

答案 1 :(得分:2)

显然,仅仅从URL中辨别出来是不可能的。

你可以获取内容并进行比较,但我想你必须使用智能标准来决定两个页面是否相同 - 例如,两者都指向同一篇文章,但是随机广告不同,或相关文章根据其他因素而变化。

设计您的程序,以便轻松替换匹配页面的标准,甚至是动态替换,并尝试直到找到一个没有失败的标准 - 例如,对于报纸页面,您可以尝试查找标题。