我如何检测到这两个url驱动到同一个站点?

2024-09-29 02:17:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我如何检测到这两个URL驱动到同一个站点(因此它们是相同的URL),而不必使用web抓取来读取内容?在

例如:我需要检查(使用GET请求)

这两个网址是同一个网站,但我如何检测?在

我更喜欢Ruby或Python,但我可以使用任何语言。在

编辑:

另一个类似http://www.inprovo.com/ &;http://www.inprovo.com/default.asp。这个网站有一些随机的横幅,当重新加载时会改变,所以HTML与每次重新加载不同。在

谢谢你!在


Tags: comwebhttpurl内容getindex站点
3条回答

最后,我使用了受@larsmans answer启发的Tf-idf算法得到它:

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

或者,如果文档是纯字符串

^{pr2}$

几个有用的链接:

可以在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'

编辑:也许我误解了你的帖子,但我认为这意味着你需要检查两个url是否链接到同一个页面,即它们有相同的内容。如果不是这样,我道歉。在

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 

相关问题 更多 >