我的python程序有问题,它应该从文本文件URL地址读取并读取和计算例如div标签等的出现。 我在第23行遇到错误 二[ffline [K]] - = 1
import urllib
with open('top5_BRZ.txt') as urlf:
uf=urlf.readlines()
for i in range(len(uf)):
link = uf[i]
f = urllib.urlopen(link)
myfile = f.read()
fline=myfile.split('\n')
di={}
for j in range(len(fline)):
line = fline[j]
line = line.replace('"', " ")
line = line.replace("'", " ")
line = line.replace('<', " ")
line = line.replace('>', " ")
line = line.replace('=', " ")
line = line.replace('/', " ")
line = line.replace("\\", " ")
ffline=line.split(' ')
for k in range(len(ffline)):
di[ffline[k]]-=1
sx = sorted(di.items(), key=operator.itemgetter(1))
rr=0
for key, value in di:
if(rr==25): break
print key,value
rr+=1
答案 0 :(得分:2)
运行dict
时,di
di[ffline[k]]-=1
中没有任何键。当您尝试递减di
键的值时,dict
仍为空ffline[k]
。
答案 1 :(得分:2)
我同意@brian。您可以使用下面的代码(第22行)来检查密钥是否在字典中,然后递减该值。
files=(*)
答案 2 :(得分:0)
您忘记使用html5lib来解析您的HTML:
import html5lib
import urllib
def main():
for link in ["http://www.google.com/"]:
f = urllib.urlopen(link)
tree = html5lib.parse(f)
divs = len(tree.findall("*//{http://www.w3.org/1999/xhtml}div"))
print("{}: {} divs".format(link, divs))
main()