class_abbrevs_2 = [x.text for x in subject_page.find_all('td')[1].find_all('a')]
我正在打开每个链接,然后这是给我问题的页面。它只有一个'td'
,它只有一个td:
http://registrar.indiana.edu/browser/soc4168/CTIH/index.shtml
以下是普通页面看起来有2 'td'
:
http://registrar.indiana.edu/browser/soc4168/CSCI/index.shtml
有人可以告诉我,只有这样才能运行此行。我无法弄清楚语法。只是为了一点背景,如果需要我使用python和BS4进行webscraping。 Lmk如果有任何其他信息可以帮助。感谢
答案 0 :(得分:2)
如果我从上面的评论中正确理解,我想你只是想要这个?
tds = subject_page.find_all('td')
if len(tds) > 1:
class_abbrevs_2 = [x.text for x in tds[1].find_all('a')]
答案 1 :(得分:0)
您可以使用 nth-of-type 将代码简化为选择,以查找第二个 td :
text = [a.text for a in soup.select("#crsebrowser td:nth-of-type(2) a")]
如果表格中没有第二个td,那么它将找不到任何内容,因此您最终会得到来自锚点的文本列表,或者没有任何内容,因此您不需要任何其他逻辑来获取数据。