Python 如何修复索引器错误:列表索引超出代理范围

Python 如何修复索引器错误:列表索引超出代理范围,python,Python,我这里有一个免费代理的脚本,但现在它有一个错误: 回溯最近一次呼叫上次: 文件proxi.py,第14行,在 如果td[6].text==否:如果将“否”更改为“是”,则会得到https 索引器:列表索引超出范围 import requests from bs4 import BeautifulSoup out = "" urls = ["http://www.us-proxy.org/","http://free-proxy-list.net/uk-proxy.html","http://f

我这里有一个免费代理的脚本,但现在它有一个错误:

回溯最近一次呼叫上次:

文件proxi.py,第14行,在

如果td[6].text==否:如果将“否”更改为“是”,则会得到https

索引器:列表索引超出范围

import requests
from bs4 import BeautifulSoup

out = ""
urls = ["http://www.us-proxy.org/","http://free-proxy-list.net/uk-proxy.html","http://free-proxy-list.net/anonymous-proxy.html"]
for url in urls:
r = requests.get(url)
data = r.text
soup = BeautifulSoup(data, "html.parser")
tr = soup.find_all("tr")
for t in tr:
td = t.find_all("td")
if (td):
  if (td[6].text=="no"): # If you change "no" to "yes" you get https
    out+=(td[0].text+":"+td[1].text+"\n")
f = open("proxy.txt", "w")
f.write(out)
f.close()

td并不总是在第6点有一个指数

所以当你做td[6]时,它会给你一个索引错误

看看这段代码,我打印出td的长度

下面是我举的一个例子。


希望它能帮助你更好地理解。

td并不总是在第6点有一个索引

所以当你做td[6]时,它会给你一个索引错误

看看这段代码,我打印出td的长度

下面是我举的一个例子。


希望它能帮助您更好地理解。

这些URL共享类似的标记结构:

URL=[http://www.us-proxy.org/,http://free-proxy-list.net/uk-proxy.html,http://free-proxy-list.net/anonymous-proxy.html] 有一个id为proxylisttable的表,其中包含具有页眉行和页脚行的代理列表

我建议将tr选择限制在此表中,例如

trs=bs.selecttableproxylisttable tr 代理=trs[1:-1]不包括标题和页脚
这些URL共享类似的标记结构:

URL=[http://www.us-proxy.org/,http://free-proxy-list.net/uk-proxy.html,http://free-proxy-list.net/anonymous-proxy.html] 有一个id为proxylisttable的表,其中包含具有页眉行和页脚行的代理列表

我建议将tr选择限制在此表中,例如

trs=bs.selecttableproxylisttable tr 代理=trs[1:-1]不包括标题和页脚
错误来自哪里?请发布完整的错误回溯并提供一个工作示例。请更正缩进在引用td[6]Indexer之前检查td的长度。错误表示您正在执行此操作someIterable[someIndex],someIterable在someIndex处没有值。在尝试访问该索引之前检查长度,或者尝试/除了索引器我添加了整个错误。如何检查长度?错误来自何处?请发布完整的错误回溯并提供一个工作示例。请更正缩进在引用td[6]Indexer之前检查td的长度。错误表示您正在执行此操作someIterable[someIndex],someIterable在someIndex处没有值。在尝试访问该索引之前检查长度,或者尝试/除了索引器我添加了整个错误。我如何检查长度?我应该在哪一行包括这个?我应该在哪一行包括这个?我真的不明白,我对你的代码有以下问题:0 8 8等8 8。。回溯上一次调用:文件proxi2.py,第15行,在if td[6]中。text==yes:如果将“否”更改为“是”,您将获得https索引器:列表索引超出范围我不太理解,我对您的代码有以下问题:0 8等8。。回溯上次调用:if td[6]中的文件proxi2.py,第15行。text==是:如果将“否”更改为“是”,则https索引器错误:列表索引超出范围
import requests
from bs4 import BeautifulSoup

out = ""
urls = ["http://www.us-proxy.org/","http://free-proxy-list.net/uk-proxy.html","http://free-proxy-list.net/anonymous-proxy.html"]
for url in urls:
    r = requests.get(url)
    data = r.text
    soup = BeautifulSoup(data, "html.parser")
    tr = soup.find_all("tr")
for t in tr:
    td = t.find_all("td")
    print(len(td))
    if (td):
        if (td[6].text=="yes"): # If you change "no" to "yes" you get https
            out+=(td[0].text+":"+td[1].text+"\n")
f = open("proxy.txt", "w")
f.write(out)
f.close()