2

我是一个**非常新的 Python 程序员。使用 urllib 和 beautifulsoup 开发网络爬虫。请忽略顶部的 while 循环和 i 的增量,我只是在运行这个测试版本,并且只有一页,但它最终会包括一整套。我的问题是这得到了汤,但会产生错误。我不确定我是否正确收集了表格数据,但我希望这段代码可以忽略链接并将文本写入 .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)
4

1 回答 1

0

最后,我通过更改以下行解决了这个问题:

for row in table.findAll('tr')[1:]:

到:

for row in table.findAll('tr')[2:]:

错误是因为表的第一行有拆分列

于 2013-04-12T17:39:59.987 回答