gpt4 book ai didi

python - 为什么我需要指定这个列表的大小,否则它会给出列表索引超出范围的错误

转载 作者:行者123 更新时间:2023-11-28 21:42:39 25 4
gpt4 key购买 nike

我正在尝试解析网页中的 URL 列表。我做了以下事情:

  1. 获得了所有“a”标签的列表。
  2. 使用 for 循环 get("href")
  3. 在循环过程中,我一直将 get 值分配给一个名为 links 的新空列表

但我一直收到索引超出范围的错误。我认为这可能是因为我增加链接索引的方式,但我确信情况并非如此。这是容易出错的代码:

import urllib
import bs4
url = "http://tellerprimer.ucdavis.edu/pdf/"
response = urllib.urlopen(url)
webpage = response.read()
soup = bs4.BeautifulSoup(webpage, 'html.parser')
i = 0
links = []

for tags in soup.find_all('a'):
links[i] = str(tags.get('href'))
i +=1
print i, links

我给链接一个固定的长度,它固定了它,像这样:

links = [0]*89 #89是soup.find_all('a')的长度

我想知道是什么导致了这个问题。

最佳答案

您正试图将某些内容分配给不存在的索引。当您创建 links 时,您将其创建为一个空列表。

然后你执行 links[i],但是 links 是空的,所以没有 i 索引。

正确的做法是:

links.append(str(tags.get('href')))

这也意味着您可以消除 i 变量。不需要。


for tags in soup.find_all('a'):
links.append(str(tags.get('href')))
print links

这将打印您的 links 列表中的所有 89 个链接。

关于python - 为什么我需要指定这个列表的大小,否则它会给出列表索引超出范围的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43360035/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com