double07 发表于 2021-4-29 18:16

python 'list index out of range'?

本帖最后由 double07 于 2021-4-29 19:01 编辑

<td class="rowfollow nowrap" valign="middle" style='padding: 0'><a href="?cat=419"><img src="pic/cattrans.gif" alt="Movie(電影)/HD" title="Movie(電影)/HD" style="background-image: url(pic/category/chd/scenetorrents/cht/moviehd.png);" /></a></td>
<td class="torrenttr" width="100%" align="left"><table class="torrentname" width="100%"><tr class="sticky_top"><td class="torrentimg"><a title="To Be or Not to Be 1942.1080p FLAC x264-Geek" href="details.php?id=479986&hit=1"><img alt="torrent thumbnail" src="https://img9.doubanio.com/view/photo/l_ratio_poster/public/p1339915772.jpg"></a></td><td class="embedded"><img class="sticky" src="pic/trans.gif" alt="Sticky" title="一級置頂" /><img class="sticky" src="pic/trans.gif" alt="Sticky" title="一級置頂" /><img src="pic/ms_up.gif" align="absmiddle" title="+20%" alt="+20%"> <a title="To Be or Not to Be 1942.1080p FLAC x264-Geek" href="details.php?id=479986&hit=1"><b>To Be or Not to Be 1942.1080p FLAC x264-Geek</b></a> <img class="pro_50pctdown" src="pic/trans.gif" alt="50%" title="50%" /> <img src="pic/trans.gif" class="label_sub" alt="中字" /><br />你逃我也逃 (1942) </td><td width="80" class="embedded" style="text-align: right; " valign="middle"><a href="download.php?id=479986&https=1"><img class="download" src="pic/trans.gif" style='padding-bottom: 2px;' alt="download" title="下載本種" /></a><a id="bookmark0"href="javascript: bookmark(479986,0);" ><img class="delbookmark" src="pic/trans.gif" alt="Unbookmarked" title="收藏" /></a><br /><img src="/pic/imdb.gif" alt="IMDB:" /> <a >8.3</a></td>
</tr></table></td><td class="rowfollow"><b><a href="details.php?id=479986&hit=1&cmtpage=1#startcomments" >11</a></b></td><td class="rowfollow nowrap"><span title="2021-04-18 21:44:44">10天<br />20時</span></td><td class="rowfollow">13.59<br />GB</td><td class="rowfollow" align="center"><b><a href="details.php?id=479986&hit=1&dllist=1#seeders">151</a></b></td>
<td class="rowfollow"><b><a href="details.php?id=479986&hit=1&dllist=1#leechers">1</a></b></td>
<td class="rowfollow"><a href="viewsnatches.php?id=479986"><b>274</b></a></td>
<td class="rowfollow" style="font-weight: bold">--</td><td class="rowfollow"><i>匿名</i></td>

用pycharm debug调试能得到种子数(见图)

但正式运行却这样提示?问题出在哪里?


这应该是问题所在:通过循环对结果一一检查,发现,当“种子数”较少时,会在<a>标签间增加一段颜色代码:<a href="details.php?id=438306&amp;hit=1&amp;dllist=1#seeders"><font color="#ff0000">1</font></a>导致的吧,但怎样解决?

fanvalen 发表于 2021-4-29 18:24

你那不是list列表,{}是字典是dic
你用list方法去操作字典是不行的
list=[]这才是列表

Test_dada 发表于 2021-4-29 18:27

这是提示超出索引了,52行的代码i.xpath(...)这句打印下看看有没有值

Test_dada 发表于 2021-4-29 18:30

fanvalen 发表于 2021-4-29 18:24
你那不是list列表,{}是字典是dic
你用list方法去操作字典是不行的
list=[]这才是列表

他命名是list,但代码是list[‘’键名‘’]=键值,是字典的赋值方法

double07 发表于 2021-4-29 18:35

本帖最后由 double07 于 2021-4-29 18:38 编辑

Test_dada 发表于 2021-4-29 18:27
这是提示超出索引了,52行的代码i.xpath(...)这句打印下看看有没有值
有值,148。同时测试了len,显示1

fanvalen 发表于 2021-4-29 18:52

在xpath之前先print(i)来看看是什么

double07 发表于 2021-4-29 18:59

一个个循环结果检查,发现,当“种子数”较少时,会在<a>标签间增加一段颜色代码:<a href="details.php?id=438306&amp;hit=1&amp;dllist=1#seeders"><font color="#ff0000">1</font></a>导致的吧,但怎样解决?

Ercilan 发表于 2021-4-29 19:31

分两种情况筛选测试呗。第一种不行再尝试第二种

metaxman 发表于 2021-4-29 19:54

本帖最后由 metaxman 于 2021-4-29 19:56 编辑

Test_dada 发表于 2021-4-29 18:30
他命名是list,但代码是list[‘’键名‘’]=键值,是字典的赋值方法
这代码变量名也是没谁了?list都拿来直接用来做变量名
后面如果用到list( ),岂不尴尬 and 手足无措

Test_dada 发表于 2021-4-30 09:19

本帖最后由 Test_dada 于 2021-4-30 09:24 编辑

double07 发表于 2021-4-29 18:59
一个个循环结果检查,发现,当“种子数”较少时,会在标签间增加一段颜色代码:1导致的吧,但怎样解决?
<a href="details.php?id=438306&hit=1&dllist=1#seeders">
<font color="#ff0000">1</font>
</a>
这里的时候,明显a标签text()拿不到数据,文本在font里面
这里可以加个try,判断异常的时候就取font的值
try:
    list['...'] = i.xpath(...)...
except Exception as e:
      print(str(e),"代码异常,尝试font.text()")
      list['...'] = i.xpath(...)...# 这里写的是<font color="#ff0000">1</font>的文本取值
页: [1] 2
查看完整版本: python 'list index out of range'?