当前位置: 首页 > 知识库问答 >
问题:

从img标签中提取src属性

端木望
2023-03-14
<div class="someClass">
    <a href="href">
        <img alt="some" src="some"/>
    </a>
</div>

我想从图像(即img)标签中提取源(即src)属性,我使用bs4,我不能使用a.attrs['src']来获取src,但是我可以获取href。我该怎么办?

共有3个答案

计阳泽
2023-03-14

这里有一个解决方案,如果img标签没有src属性,它不会触发KeyError:

from urllib.request import urlopen
from bs4 import BeautifulSoup

site = "[insert name of the site]"
html = urlopen(site)
bs = BeautifulSoup(html, 'html.parser')

images = bs.find_all('img')
for img in images:
    if img.has_attr('src'):
        print(img['src'])
燕正卿
2023-03-14

链接没有属性src,您必须以实际img标记为目标。

import bs4

html = """<div class="someClass">
    <a href="href">
        <img alt="some" src="some"/>
    </a>
</div>"""

soup = bs4.BeautifulSoup(html, "html.parser")

# this will return src attrib from img tag that is inside 'a' tag
soup.a.img['src']

>>> 'some'

# if you have more then one 'a' tag
for a in soup.find_all('a'):
    if a.img:
        print(a.img['src'])

>>> 'some'
叶国兴
2023-03-14

您可以使用BeautifulSoup来提取html img标记的src属性。在我的示例中,htmlText包含img标记本身,但这也可以与urllib2一起用于URL。

对于URL

from BeautifulSoup import BeautifulSoup as BSHTML
import urllib2
page = urllib2.urlopen('http://www.youtube.com/')
soup = BSHTML(page)
images = soup.findAll('img')
for image in images:
    #print image source
    print(image['src'])
    #print alternate text
    print(image['alt'])

对于带有img标签的文本

from BeautifulSoup import BeautifulSoup as BSHTML
htmlText = """<img src="https://src1.com/" <img src="https://src2.com/" /> """
soup = BSHTML(htmlText)
images = soup.findAll('img')
for image in images:
    print(image['src'])

Python 3:2022-02-02更新

from bs4 import BeautifulSoup as BSHTML
import urllib

page = urllib.request.urlopen('https://github.com/abushoeb/emotag')
soup = BSHTML(page)
images = soup.findAll('img')

for image in images:
    #print image source
    print(image['src'])
    #print alternate text
    print(image['alt'])

如果需要,安装模块

# python 3
pip install beautifulsoup4
pip install urllib3
 类似资料:
  • 我正在抓取此网页以供个人使用https://asheville.craigslist.org/search/fua并在提取页面上每个项目的缩略图时遇到问题。当我使用“检查”查看html DOM时,我可以查看包含我需要的. jpg的图像标签,但当我使用“查看页面源”时,img标签不会显示。起初我认为这可能是一个异步javascript加载问题,但一个可靠的消息来源告诉我,我应该能够直接用漂亮的汤抓取

  • 我试图使用美丽的汤抓取newegg的产品名称、描述、价格和图像。我有以下bs4.element.标签类型,我想从标签中提取“src”链接。以下是我的标签: 我怎样才能提取 从这个标签?我试过了 但我收到了Keyerror。

  • 问题内容: 使用PHP,如何隔离$ foo的src属性的内容?我寻找的最终结果只会给我“ http://example.com/img/image.jpg ” 问题答案: 如果您不想使用正则表达式(或任何非标准的PHP组件),则使用内置的DOMDocument类的合理解决方案如下:

  • 问题内容: 我想创建一个页面,其中列出我网站上的所有图像,并附带标题和替代表示。 我已经给我写了一个小程序查找和加载所有的HTML文件,但现在我停留在如何提取,并依据此HTML: 我猜应该用一些正则表达式来完成,但是由于标签的顺序可能会有所不同,而且我需要所有标签,所以我真的不知道如何以一种优雅的方式解析它(我可以通过char方式,但这很痛苦)。 问题答案: 编辑:现在我知道了 使用正则表达式解决

  • 我正在尝试使用Scrapy获取ID为的页面上图像的URL。target元素具有以下HTML代码 在Chrome浏览器中运行 正确抓取URL 问题:但是在Scrapy中使用以下CSS选择器, 而且 而且 给了我们 使用也返回了同样不正确的URL。 为什么Scrapy会抓取不同的SRC值?

  • 我做了一个画廊,包含一些不同的图像和点击他们打开模态,并显示图像的缩放。 我使用相同的方法与投资组合,但在这里我只有4项,所以我创建4种不同的模态,显示描述等... 现在有了图像,我想要一个单一的模式,改变图像显示与用户点击。 包含图像的div是这样结构的: 这里是模态: 这里是jQuery: 以下链接 问题是,当我点击图片时,网站显示模式,但不显示里面的图片。。。使用inspect代码,我看到s