漂亮汤的错误:列表索引超出范围

时间:2013-04-09 16:00:57

标签: python beautifulsoup urllib

我是一个非常新的python程序员。使用urllib和beautifulsoup在webcrawler上工作。请忽略顶部的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)

1 个答案:

答案 0 :(得分:0)

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

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

为:

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

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