【问题标题】:Beautiful Soup. How to get a link containing a specific word?美丽的汤。如何获取包含特定单词的链接?
【发布时间】:2023-04-09 10:54:01
【问题描述】:

HTML 在 div 中包含字符串:

  • 'div class="slide"' 'img src="xttps://site.com/files/r_1000,kljg894/43k5j/35h43jkl.jpg' '/div'
  • 'div class="slide"' 'img src="xttps://site.com/files/r_2000,kljg894/43k5j/35h43jkl.jpg' '/div'
  • 'div class="slide"' 'img src="xttps://site.com/files/r_3000,kljg894/43k5j/35h43jkl.jpg' '/div'

需要获取只包含“r_3000”的链接

此代码获取所有链接:

imglink = soup.find_all('img')
print(imglink)

我浏览并尝试了许多技巧。例如:

('img', string="*r_3000*")('img', string=re.compile('r_3000')('img', string=lambda s: 'r_3000' in s) 以及许多其他人,但这一切都不起作用:(

请帮帮我。

【问题讨论】:

    标签: beautifulsoup python-2.x


    【解决方案1】:

    有很多方法可以做到这一点。试试 css 选择器。

    from bs4 import BeautifulSoup
    html='''<div class="slide"><img src="xttps://site.com/files/r_1000,kljg894/43k5j/35h43jkl.jpg"></div>
    <div class="slide"> <img src="xttps://site.com/files/r_2000,kljg894/43k5j/35h43jkl.jpg"></div>
    <div class="slide"><img src="xttps://site.com/files/r_3000,kljg894/43k5j/35h43jkl.jpg"></div>'''
    soup=BeautifulSoup(html,"html.parser")
    for item in soup.select("img[src*='r_3000']"):
        print(item['src'])
    

    【讨论】:

      【解决方案2】:

      我会首先从文档中过度选择并使用 Python 进行过滤。例如:

      img_links = soup.find_all('img', src=True)
      r_3000_links = [ l['src'] for l in img_links if 'r_3000' in l['src'] ]
      

      将返回包含'r_3000'的所有链接的列表

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-28
        • 2015-08-01
        • 2021-09-08
        • 1970-01-01
        • 2020-03-05
        • 2014-12-06
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多