私は**Pythonの非常に新しいプログラマーです。urllib と beautifulsoup を使用して Web クローラーに取り組んでいます。上部の while ループと i のインクリメントは無視してください。私はこのテスト バージョンを 1 ページだけ実行していますが、最終的にはセット全体が含まれます。私の問題は、これがスープを取得することですが、エラーが発生することです。テーブル データが正しく収集されているかどうかはわかりませんが、このコードがリンクを無視して、テキストを .csv ファイルに書き込むだけで済むことを願っています。今のところ、テキストを画面に正しく出力することに集中しています。
line 17, in <module>
uspc = col[0].string
IndexError: list index out of range
コードは次のとおりです。
import urllib
from bs4 import BeautifulSoup
i=125
while i==125:
url = "http://www.uspto.gov/web/patents/classification/cpc/html/us" + str(i) + "tocpc.html"
print url + '\n'
i += 1
data = urllib.urlopen(url).read()
print data
#get the table data from dump
#append to csv file
soup = BeautifulSoup(data)
table = soup.find("table", width='80%')
for row in table.findAll('tr')[1:]:
col = row.findAll('td')
uspc = col[0].string
cpc1 = col[1].string
cpc2 = col[2].string
cpc3 = col[3].string
record = (uspc, cpc1, cpc2, cpc3)
print "|".join(record)