如何解释以下 Beautiful Soup 代码?

How to explain the following Beautiful Soup code?

我是 Beautiful Soup 的新手,正在尝试学习它,但在我学习它的过程中,我卡在了某个地方 code.Below 是代码:

for link in bsObj.findAll("a"):
    if 'href' in link.attrs:
        print(link.attrs['href'])

我无法理解“.attrs”的含义如何使用它以及它有什么作用? 其次,当我执行这段代码时,它会打印所有链接,但会省略 href 作为它的变量。?到底是怎么回事?有人可以给我解释一下吗?

完整代码如下:

from urllib.request import urlopen
from bs4 import BeautifulSoup
html = urlopen("http://en.wikipedia.org/wiki/Kevin_Bacon")
bsObj = BeautifulSoup(html)
for link in bsObj.findAll("a"):
    if 'href' in link.attrs:
        print(link.attrs['href'])

从 beautifulsoup4 的文档中,"attrs" 引用了具有 html 标记值的所有属性。对于 "a" 标签,它可能有 "href" 属性,"class attribute" 等属性 return 一个字典,所以你将通过访问键 "href" 来获取值.例如:当它打印以下内容时 link:

"/wiki/Wikipedia:Protection_policy#semi"=10=]

然后,字典["href"] = "/wiki/Wikipedia:Protection_policy#semi" 所以键 "href" 的值是 "/wiki/Wikipedia:Protection_policy#semi"

只需编写如下代码: print(link.attrs) 那么关于这一切你就会清楚了。