2017-06-08 11 views
0
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() 

出力 -はIndexError:範囲外のリストインデックス

を解決し得ていない処理アルカリ制御C-H切断またはN2由来の鉄窒化物およびイミドによるN-C結合形成 - のジャーナル米国化学会(ACS出版)の.htm
抽象
サポート情報
周囲の反応条件の下でシリルアミンへの分子二窒素の バナジウム触媒還元

Traceback (most recent call last):

File "", line 1, in runfile('/Users/ROXX/Desktop/project/csv1.py', wdir='/Users/ROXX/Desktop/project')

File "/Users/ROXX/anaconda/lib/python2.7/site-packages/spyder/utils/site/sitecustomize.py", line 880, in runfile execfile(filename, namespace)

File "/Users/ROXX/anaconda/lib/python2.7/site-packages/spyder/utils/site/sitecustomize.py", line 94, in execfile builtins.execfile(filename, *where)

File "/Users/ROXX/Desktop/project/csv1.py", line 17, in all_string=soup.find_all("h2")[x].get_text()

IndexError: list index out of range

答えて

0

おそらく、エラーの原因は、(2番目のループで)処理しているファイルに7未満のh2の出現があるためです。固定間隔の代わりに「all_string」を繰り返すと、問題が解決する可能性があります。

+0

ありがとうございます。データを収集し、.csvファイルの列で破損していることを探してください。そのためのコマンドや方法を知りたい。 –

+0

ここをクリックhttp://www.pythonforbeginners.com/systems-programming/using-the-csv-module-in-python/ –

関連する問題