import glob
from bs4 import BeautifulSoup
f = open('csvfile.csv','w')
for file in glob.glob('*.htm'):
print 'Processing', file
for y in range(0,3):
for x in range(0, 6):
soup = BeautifulSoup(open(file).read())
all_string=soup.find_all("h2")[x].get_text()
#stack=[]
#acct.write(", ".join(stack) + '\n')
f.write(all_string)
f.write('\n')
print(all_string)
x=0
f.close() 输出-
处理由氮衍生的铁氮化物和酰亚胺形成的碱控制的碳-氢裂解或氮-碳键-美国化学学会杂志.htm
摘要
辅助信息
环境条件下钒催化分子二氮还原为硅胺
回溯(最近一次调用): 文件"",第1行,在runfile('/Users/ROXX/Desktop/project/csv1.py',wdir='/Users/ROXX/Desktop/project') 文件"/Users/ROXX/anaconda/lib/python2.7/site-packages/spyder/utils/site/sitecustomize.py",行880,在runfile中(文件名,命名空间) 文件"/Users/ROXX/anaconda/lib/python2.7/site-packages/spyder/utils/site/sitecustomize.py",第94行,在builtins.execfile(文件名,*where)中 文件"/Users/ROXX/Desktop/project/csv1.py",第17行,在all_string=soup.find_all("h2")x.get_text()中 IndexError:列出超出范围的索引
发布于 2017-06-08 18:29:25
造成此错误的原因可能是在您正在处理的文件中(在第二个循环中)出现的h2少于7次。在"all_string“上重复而不是固定的间隔可能会解决这个问题。
https://stackoverflow.com/questions/44440986
复制相似问题