鱼C论坛

 找回密码
 立即注册
查看: 2330|回复: 2

list index out of range问题

[复制链接]
发表于 2017-8-18 17:22:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
求助各位大佬啦,拜托
定向爬取网页上的内容生成一个列表可是老是提示list index out of range啥情况啊,发现要爬的table标签下每个数据在tr标签下的td标签里,但是tr标签下有时是6个td优势是5个td因此写了一个if语句可是还是提示list index out of range
我的代码import requests
from bs4 import BeautifulSoup
import bs4

def getHTML(url):
    try:
        r = requests.get(url,timeout=30)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text
    except:
        return ""


def fillTable(table,html):
    soup = BeautifulSoup(html,"html.parser")
    for tr in soup.find('table').children:
        if isinstance(tr,bs4.element.Tag):
            tds = tr('td')
            if len(table) == 6:
                table.append([tds[0].string,tds[1].string,tds[2].string,tds[3].string,tds[4].string,tds[5].string])
            else :
                table.append([tds[0].string,tds[1].string,tds[2].string,tds[3].string,tds[4].string])
            print(tds)

def printTable(table):
    print("{:^10}\t{:^10}\t{:^10}\t{:^6}\t{:^6}\t{:^6}".format("1","2","3","4","5","6"))

def main():
    tableinfo = []
    url = "http://www.cde.org.cn/guide.do?method=getIchTypeList&type1=1"
    html = getHTML(url)
    fillTable(tableinfo,html)
    printTable(tableinfo)
main()

下面是一个6个td标签的tr,url网页在上面也有大家可以看一下源代码
360截图-423501171.jpg

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-8-18 17:29:02 | 显示全部楼层
你这样找肯定不是办法,学会正则表达式才是王道
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-8-18 18:15:40 | 显示全部楼层
用正则
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 02:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表