我有重複行這樣的txt文件:在文件中涉及的連續兩行
Host: http://de.wikipedia.org Referer: http://www.wikipedia.org Host: answers.yahoo.com/ Referer: http://www.yahoo.com Host: http://de.wikipedia.org Referer: http://www.wikipedia.org Host: http://maps.yahoo.com/ Referer: http://www.yahoo.com Host: http://pt.wikipedia.org Referer: http://www.wikipedia.org Host: answers.yahoo.com/ Referer: http://www.yahoo.com Host: mail.yahoo.com Referer: http://www.yahoo.com Host: http://fr.wikipedia.org Referer: http://www.wikipedia.org Host: mail.yahoo.com Referer: http://www.yahoo.com
我與這段代碼試圖去通過線,看看有多少主機已經通過訪問相同的推薦人:
dd = {}
for line in open('hosts.txt'):
if line.startswith('Host'):
host = line.split(':')[1].strip('\n')
elif line.startswith('Referer'):
referer = line.split(': ')[1].strip('\n')
dd.setdefault(referer, [0 , host])
dd[referer][0] += 1
print dd
egfrom wikipedia.org,有多少鏈接或域已被訪問。
我只想要第一次出現任何引用者,並且對於屬於該引用者的主機,我想要所有這些引用的總和,忽略已經爲相同引用者計數的主機,所以基本上每當引用者主機是相同的,他們已經被計算在內,我希望他們被忽略,將「引用者」作爲鍵值和唯一主機的總和作爲值,如下所示:
{'http:// www。 wikipedia.org':3,'www.yahoo.com':2}
我的代碼存在的問題是,它將所有重複主機總計爲同一個引用者,因爲我無法弄清楚如何關聯主機和Referer行。所以,任何暗示或幫助是高度讚賞。
這是否始終是一個主機行之後是一個Referer系列,或者是否曾經存在過主機後跟多個推薦人? – amadain 2010-10-15 10:34:06