Beatifulsoup 不返回 href 它返回 None

时间:2021-03-01 13:26:48

标签: python beautifulsoup

>>> soup_brand
<a data-role="BRAND" href="/URL/somename">
          Some Name
        </a>

>>> type(soup_brand)
<class 'bs4.BeautifulSoup'>

>>> print(soup_brand.get('href'))
None

文档如下:https://www.crummy.com/software/BeautifulSoup/bs4/doc/

嗨,来自世界各地的人们, 是有人现在出了什么问题,还是我瞄准的对象有误?

需要获取 href。

2 个答案:

答案 0 :(得分:1)

为了应用 ['href'],对象必须是 <bs4.Element.Tag>

所以,试试这个:

string = \
"""
<a data-role="BRAND" href="/URL/somename">
          Some Name
        </a>
"""

s = BeautifulSoup(string)
a_tag = s.find('a')
print(a_tag["href"])

/URL/somename

或者如果您有多个 a 标签,您可以试试这个:

a_tags = s.findAll('a')
for a in a_tags:
    print(a.get("href"))

/URL/somename

答案 1 :(得分:1)

你试过了吗:

soup.find_all(name="a")

soup.select_one(selector="a")

也应该可以赶上

all_anchor_tags = soup.find_all(name="a")
for tag in all_anchor_tags:
    print(tag.get("href")) #prints the href element of each a tag, thus each link

尽管我遇到的所有 bs4 都寻找多个元素(我们在这里有一个循环的原因),但 bs4 有时在捕捉事物方面更好,如果你给它一个搜索所有方法然后迭代元素