python爬虫中碰到IndexError: list index out of range问题

蔚蔚蔚_蓝天 2018-08-16 04:38:56
soup = BeautifulSoup ( html, "lxml" )
trs = soup.find_all('tr')[1:]
movies = []
for tr in trs:
movie = {}
tds = tr.find_all("td")
title = tds[0].string
category = tds[1].string
nums = tds[2].string
city = tds[3].string
time = tds[4].string
movie['title'] = title
movie['category'] = category
movie['nums'] = nums
movie['city'] = city
movie['time'] = time
movies.append(movie)
print(movies)

代码如上,会显示如下错误:
Traceback (most recent call last):
File "E:/资源/python 爬虫/bs4_hj/123123.py", line 138, in <module>
category = tds[1].string
IndexError: list index out of range

小白技术有限,但是觉得应该是tds列表问题,但是不知道怎么修改,可以指导一下吗
...全文
1844 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
蔚蔚蔚_蓝天 2018-08-16
  • 打赏
  • 举报
回复
引用 6 楼 wudamen 的回复:
上面这行代码改为
if len(tds) > 5:

我还是想问一下,这里为什么不加判断就不会成功
蔚蔚蔚_蓝天 2018-08-16
  • 打赏
  • 举报
回复
引用 6 楼 wudamen 的回复:
上面这行代码改为
if len(tds) > 5:

应该是if len(tds)>4就好了
谢谢了
wudamen 2018-08-16
  • 打赏
  • 举报
回复

soup = BeautifulSoup ( html, "lxml" )
trs = soup.find_all('tr')[1:]
print(trs) # 查看一下这里是否有数据
movies = []
for tr in trs:
    movie = {}
    tds = tr.find_all("td") # 你这里是 遍历trs,查找带有td的数据,如果没有的话使用tds[0] 获取下标会报错
if len(tds) > 0:
    title = tds[0].string
    category = tds[1].string
    nums = tds[2].string
    city = tds[3].string
    time = tds[4].string
    movie['title'] = title
    movie['category'] = category
    movie['nums'] = nums
    movie['city'] = city
    movie['time'] = time
    movies.append(movie)
print(movies)

假设这个还不是很理解的话,最好学习一下Python的基础语法
wudamen 2018-08-16
  • 打赏
  • 举报
回复
上面这行代码改为
if len(tds) > 5:
欢乐的小猪 2018-08-16
  • 打赏
  • 举报
回复
我看你这个index01234,你就先判断这个列表长度等于5,再进行下面的。

数据规整,代码就没错。。。
蔚蔚蔚_蓝天 2018-08-16
  • 打赏
  • 举报
回复
引用 1 楼 hbu_pig 的回复:
tds列表没有那么多数据。你可以判断列表的长度

如果没有那么多数据,这段代码就是纯错误的吗
蔚蔚蔚_蓝天 2018-08-16
  • 打赏
  • 举报
回复
引用 1 楼 hbu_pig 的回复:
tds列表没有那么多数据。你可以判断列表的长度

这个具体怎么操作,我学习的视频上老师为什么成功了
欢乐的小猪 2018-08-16
  • 打赏
  • 举报
回复
tds列表没有那么多数据。你可以判断列表的长度

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧