Python I / O,URL读取,字符串,计数

时间:2017-02-19 00:04:13

标签: python python-2.7

我的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

3 个答案:

答案 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()