gpt4 book ai didi

python - 从具有纯文本属性的 'a' 元素中提取 href

转载 作者:行者123 更新时间:2023-12-03 19:05:39 26 4
gpt4 key购买 nike

我正在尝试在 python webscraper 中构建一个函数,该函数移动到结果列表中的下一页。由于链接位于许多其他标签的末尾,并且没有任何属性,例如 class 或 ID,因此我无法在 Beautiful Soup 中找到该元素。
这是html的一个片段:

<a href="http://www.url?&=page=2">
Next

</a>
我一直在阅读 bs4 文档,试图了解如何提取 URL,但我被难住了。我认为这可以通过以下任一方式完成:
  • 在父元素中找到最后一个 .a['href'] ,因为它总是最后一个。
  • 基于它始终具有“下一个”文本的事实来查找 href

  • 我不知道如何写一些可以解决 1. 或 2 的东西。
    我是在正确的路线上吗?有没有人有任何建议来实现我的目标?谢谢

    最佳答案

    <a>包含文本的标签 Next , 你可以做:

    from bs4 import BeautifulSoup


    txt = '''
    <a href="http://www.url?&=page=2">
    Next

    </a>'''


    soup = BeautifulSoup(txt, 'html.parser')
    print(soup.select_one('a:contains("Next")')['href'])
    打印:
    http://www.url?&=page=2

    或者:
    print(soup.find('a', text=lambda t: t.strip() == 'Next')['href'])

    获取最后一个 <a>某些元素内的标记,您可以索引 ResultSet[-1] :
    from bs4 import BeautifulSoup


    txt = '''
    <div id="block">
    <a href="#">Some other link</a>
    <a href="http://www.url?&=page=2">Next</a>
    </div>
    '''


    soup = BeautifulSoup(txt, 'html.parser')

    print(soup.select('div#block > a')[-1]['href'])

    关于python - 从具有纯文本属性的 'a' 元素中提取 href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63692383/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com