【发布时间】:2016-07-27 20:26:04
【问题描述】:
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 进行网络抓取。 Lmk 如果有任何其他信息会有所帮助。谢谢
【问题讨论】:
-
"只有当它是真的"
-
仅当元素 ('td')[1] 为真时,或者换句话说,仅当第二个 ('td') 元素出现在 html 中时
-
我必须在 lambda 函数中设置它吗?
-
我认为有些混乱。
...('td')[1]不是布尔值,对吧?所以这不是真的或假的。列表中至少有两个元素,或者没有。如果该元素存在,则它是某种 HTML 元素,而不是布尔值。看看我的回答,让我知道这是否符合您的要求。 -
我想有更好的方法来获得你想要的东西,你能分享一下html吗?
标签: python-3.x web-scraping beautifulsoup boolean