gpt4 book ai didi

python - 如何验证 tr/table/td 是否存在

转载 作者:行者123 更新时间:2023-12-04 16:20:15 25 4
gpt4 key购买 nike

我正在使用 Mechanize 浏览器来检索一些信息。
在搜索表单中,如果没有结果,我的代码不起作用

这是我的代码

list_src =["keyword1","gdfgz", "keyword2"]
i = 0
while (i < 2):
br2 = mechanize.Browser()
br2.set_cookiejar(cj)
br2.open("https://url")
br2.select_form(nr=0) # this is the search form
br2.form['sq'] = liste_src[i]
res2 = br2.submit()
html2 = res2.read()
soup = BeautifulSoup(html2, 'lxml')
table1 = soup.findAll("table",{ "width" : "100%" })[13]
tr1 = table1.findAll('tr')[3]
table2 = tr1.findAll("table",{ "width" : "100%" })[0]
tr2 = table2.findAll('tr')[1]

我的错误信息:

tr2 = table2.findAll('tr')[1] IndexError: list index out of range



没有结果的时候,就没有这个tr。
所以我试着添加
如果不是 tr,则打印“无结果”但它不起作用。
我该如何解决问题?

最佳答案

您可以检查 tr2(或任何其他列表)的长度,然后根据列表长度迭代所有元素......或者如果索引 < 长度,则访问列表中的任何特定索引。

idx = 1
tab2trs = table2.findAll('tr')
tr2 = None
if idx < len(tab2trs):
tr2 = tab2trs[idx]

或者您可以添加一个尝试,除了...
try:
tr2=table2.findAll('tr')[1]
except IndexError:
pass

关于python - 如何验证 tr/table/td 是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48037242/

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