如何检测这两个网址是否可以驱动到相同的网站(因此它们是相同的网址),而无需使用网页抓取来阅读内容?
例如:我需要检查(使用GET请求)
两个网址都是同一网站,但我该如何检测?
我更喜欢Ruby或Python,但我可以使用任何语言。
修改
另一个案例,如http://www.inprovo.com/ &安培; http://www.inprovo.com/default.asp。此网站有一些随机横幅在重新加载时会发生变化,因此每次重新加载时HTML都不一样。
谢谢!
答案 0 :(得分:0)
Python
使用urlparse库。
from urlparse import urlparse
>>> urlparse('http://www.n-economia.com/index.asp').netloc
'www.n-economia.com'
>>> urlparse('http://www.n-economia.com/').netloc
'www.n-economia.com'
>>> urlparse('http://www.n-economia.com/index.asp').netloc == urlparse('http://www.n-economia.com/').netloc
True
答案 1 :(得分:0)
你可以在python中使用urllib2。它的方法urlopen返回一个响应对象。您可以使用read()方法检查响应的内容。如果两个相同的响应具有相同的内容,那么它们是相同的。
import urllib2
page1 = urllib2.urlopen('http://www.n-economia.com/index.asp')
page2 = urllib2.urlopen('http://www.n-economia.com/')
if page1.read() == page2.read(): print 'same site'
else: print 'different'
编辑:也许我误解了你的帖子,但我认为你需要检查两个网址是否链接到同一页面,即它们具有相同的内容。如果情况并非如此,我道歉。
答案 2 :(得分:0)
最后,我使用受Tf-idf启发的@larsmans answer算法得到它:
<强>引用:强> Tf-idf(和类似的文本转换)在Python包Gensim和scikit-learn中实现。在后一种方案中,计算余弦相似度就像
一样简单from sklearn.feature_extraction.text import TfidfVectorizer
documents = [open(f) for f in text_files]
tfidf = TfidfVectorizer().fit_transform(documents)
# no need to normalize, since Vectorizer will return normalized tf-idf
pairwise_similarity = tfidf * tfidf.T
或者,如果文件是简单的字符串,
>>> vect = TfidfVectorizer(min_df=1)
>>> tfidf = vect.fit_transform(["I'd like an apple",
... "An apple a day keeps the doctor away",
... "Never compare an apple to an orange",
... "I prefer scikit-learn to Orange"])
>>> (tfidf * tfidf.T).A
array([[ 1. , 0.25082859, 0.39482963, 0. ],
[ 0.25082859, 1. , 0.22057609, 0. ],
[ 0.39482963, 0.22057609, 1. , 0.26264139],
[ 0. , 0. , 0.26264139, 1. ]])
几个有用的链接: