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

从图像标签Src属性中提取JPG

张通
2023-03-14

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

import lxml
import requests
from bs4 import BeautifulSoup
from fake_useragent import UserAgent

ua = UserAgent()

    r = requests.get("https://asheville.craigslist.org/search/fua", params=dict(postal=28804), headers={"user-agent":ua.chrome})
    soup = BeautifulSoup(r.content, "lxml")
    for post in soup.find_all('li', "result-row"):
        for post_content in post.findAll("a", "result-image gallery"):
            print(post_content['href'])
            for pic in post_content.findAll("img", {'alt class': 'thumb'}):
                print(pic['src'])

有人能澄清我在这里误解了什么吗?将打印“a”标记的href属性的值,但我似乎无法打印“img”标记的src属性。提前感谢!

共有1个答案

司寇安宜
2023-03-14

我能够用以下代码读取img标签:

for post in soup.find_all('li', "result-row"):
    for post_content in post.find_all("a", "result-image gallery"):
        print(post_content['href'])
        for pic in post_content.find_all("img"):
            print(pic['src'])

关于从craigslist上抓取的一些想法:

>

每个帖子似乎在一到两个图片之间加载。仔细检查后,除非单击箭头,否则不会加载旋转木马图像。如果你需要每篇文章的每张照片,你应该找到一种不同的方式来编写脚本,可能是通过访问每个有多个图像的文章的链接。

此外,我认为使用Selenium进行网络抓取非常好。您可能不需要它来完成这个项目,但它可以让您做更多的事情,例如单击按钮、输入表单数据等。这是我使用Selenium抓取数据的快速脚本:

import lxml
import requests
from bs4 import BeautifulSoup
from selenium import webdriver

def test():
    url = "https://asheville.craigslist.org/search/fua"
    driver = webdriver.Firefox()
    driver.get(url)
    html = driver.page_source.encode('utf-8')
    soup = BeautifulSoup(html, "lxml")
    for post in soup.find_all('li', "result-row"):
        for post_content in post.find_all("a", "result-image gallery"):
            print(post_content['href'])
            for pic in post_content.find_all("img"):
                print(pic['src'])
 类似资料:
  • 我想从图像(即img)标签中提取源(即src)属性,我使用bs4,我不能使用来获取,但是我可以获取。我该怎么办?

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

  • 问题内容: 我正在尝试将所有图像元素匹配为字符串, 这是我的正则表达式: 这可行,但是我想提取所有图像。因此,当我在此String上执行正则表达式时: 它返回: 问题答案: 您需要使用捕获组来提取URL,并且如果要全局匹配(即,不止一次),则在使用捕获组时,需要循环使用(在全局匹配时忽略捕获组)。 例如

  • 假设你有一个网站, example.com 上面有一些图像的大小被调整到了非常低的质量。当您单击图像时,将转到“查看图像”页面,例如:。 例如:com/view?image=image_related_temp_code 在此页面上,图像以全质量加载。但是,如果您通过Chrome Dev控制台检查其< code>src属性以下载/浏览< code>src链接,您会得到另一个图像,显示为文本返回,这

  • 在HTML文档中,我有以下标记 我正在使用JSoup,希望提取中包含的URL,该URL由标识。在阅读了下面的文章之后 > JSoup解析标记中的数据 我想出了这段代码 但这些都是印刷品 我尝试过其他的变化,但都没有成功。我要么什么也没打印出来,要么最后出现了空指针异常。 我不确定如何提取

  • 我们正在构建docker映像,并在docker构建期间添加一些元数据标签,例如: 当我们稍后在kubernetes吊舱中使用此图像时,我们希望从kubernetes api检索该标签。这对于跟踪图像标记本身中编码的内容以外的其他元数据非常有用。 标签可以通过节点上的docker获得,但我找不到任何方法在kubernetes中检索它们。这可能吗?