【问题标题】:Get all href tags and links from a list using BeautifulSoup + Python使用 BeautifulSoup + Python 从列表中获取所有 href 标签和链接
【发布时间】:2021-05-09 12:10:23
【问题描述】:

我能够获得带有标签div 及其内容的网页元素列表。它包含特定div 中所有可用链接的列表。

列表如下所示:

# I formatted the list contents to look like an HTML code

classroom_links = 
[<div class="main_class">
    <div class="sub_class">
        <a href="link1" id="id_name"></a>
        <a href="link2" id="id_name"></a>
        <a href="link3" id="id_name"></a>
        <a href="link4" id="id_name"></a>
        <a href="link5" id="id_name"></a>
    </div>
</div>
]

classroomLinks = soup.find_all("div", {"class": "main_class"})
for links in classroomLinks:
    print(links.find('a')['href'])

输出:

`"link1"`

但这只会打印第一个链接。我无法打印所有剩余的链接。

【问题讨论】:

  • 您需要在link 循环中遍历&lt;a&gt; 标签。
  • @AlexandreB。你能详细说明一下吗?

标签: python web-scraping beautifulsoup


【解决方案1】:

您可以尝试为列表中的每个元素迭代a 标签:

for dom in classroom_links:
    for aTag in dom.find_all("a"):
        print(aTag)

完整示例:

from bs4 import BeautifulSoup
classroom_links = [BeautifulSoup("""<div class="main_class">
    <div class="sub_class">
        <a href="link1" id="id_name"></a>
        <a href="link2" id="id_name"></a>
        <a href="link3" id="id_name"></a>
        <a href="link4" id="id_name"></a>
        <a href="link5" id="id_name"></a>
    </div>
</div>""")]


for dom in classroom_links:
    for aTag in dom.find_all("a"):
        print(aTag)
# <a href="link1" id="id_name"></a>
# <a href="link2" id="id_name"></a>
# <a href="link3" id="id_name"></a>
# <a href="link4" id="id_name"></a>
# <a href="link5" id="id_name"></a>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-18
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    相关资源
    最近更新 更多