我是Beautiful Soup的新手并试图学习它,而我正在学习它,我被困在某个代码上。下面是代码:
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'])
答案 0 :(得分:2)
从beautifulsoup4的文档中,“attrs”指的是具有html标记值的所有属性。对于“a”标签,它可能具有“href”属性,“类属性”等.attrs返回字典,因此您将通过访问键“href”获得该值。例如:当它打印以下链接时:
“/维基/百科:Protection_policy#半成品”
然后,字典[“href”] =“/ wiki /维基百科:Protection_policy#semi” 所以键“href”的值是“/ wiki / Wikipedia:Protection_policy#semi”
只需编写以下代码: 打印(link.attrs)然后关于这一切的一切都会清楚。