我正在浏览从网页上刮取清单数据的教程,并且我们有一个名为'soup'的BeautifulSoup对象,我应该从'soup'中找到所有元素,使它们在表中并且元素位于一些类,所以他们这样做:什么是python .get()方法在这种情况下正在做什么?
> [t["class"] for t in soup.find_all("table") if t.get("class")]
,所以我不明白这里两件事情,什么是t["class"]
在这里做什么,为什么,因为如果是在为什么我们正确的应用条件不是我们干脆写t
首先需要做t["class"]
。
为什么我们在这种情况下使用.get()方法作为布尔值,我的意思是它不会返回存储在字典中的键的值吗?
这是否意味着美丽的汤对象是一本字典?
因为我们已经在做't [“class”]',它基本上是检索标签的'class'属性,为什么我们最后需要使用'if t.get(“class”)'? – ash
对于没有“class”属性的标签,'t ['class“]'会产生一个'KeyError' - 但是由于之前的条件被取消了,所以它保护我们免于此('t [”class“]将不会如果't.get(“class”)'返回一个falsy值,则执行)。请参阅Adam Smith的答案以获得相同结果的替代方法。 –