我使用BeautifulSoup从一个用Python语言编写的HTML struct 中提取图像URL.该HTML struct 包含几个具有src属性的<img>个标记.我已经实现了_get_images函数,它使用BeautifulSoup的find_all("img")方法来检索图像URL.然而,我面临着一个问题,一些图像URL返回为None,即使在HTML中存在src属性.

以下是我的_get_images个函数:

def _get_images(self, soup):
    article_images = []
    images = soup.find_all("img")

    for img in images:
        src = img.get('src')
        article_images.append(src)

    return article_images

我得到的输出显示,有些URL是None,而其他URL是正确检索的.我判断了HTML struct ,<img>个标记确实包含src属性.这个问题可能是什么原因造成的,我如何解决它才能正确获取所有图像URL?

这个问题可能是什么原因造成的,我如何解决它才能正确获取所有的图像URL和标题?我的目标是有一个URL列表,其中每个URL包含图像的src个,并确保列表中没有None values.

推荐答案

100个元素可能是动态元素.


要从<img>个元素中提取103个属性的值,您必须将visibility_of_all_elements_located()归纳为WebDriverWait,并且您可以使用以下locator strategies之一:

代码块:

def _get_images(self):
    article_images = [my_elem.get_attribute("src") for my_elem in WebDriverWait(driver, 20).until(EC.visibility_of_all_elements_located((By.TAG_NAME, "img")))]
    return article_images

Note:您必须添加以下导入:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC

Python相关问答推荐

在内部列表上滚动窗口

对Numpy函数进行载体化

需要计算60,000个坐标之间的距离

可变参数数量的重载类型(args或kwargs)

当从Docker的--env-file参数读取Python中的环境变量时,每个\n都会添加一个\'.如何没有额外的?

numpy卷积与有效

将输入聚合到统一词典中

旋转多边形而不改变内部空间关系

AES—256—CBC加密在Python和PHP中返回不同的结果,HELPPP

在matplotlib中使用不同大小的标记顶部添加批注

为什么我的sundaram筛这么低效

如何按row_id/row_number过滤数据帧

一个telegram 机器人应该发送一个测验如何做?""

高效生成累积式三角矩阵

Python:从目录内的文件导入目录

查找数据帧的给定列中是否存在特定值

极点:在固定点扩展窗口

某些值的数值幂和**之间的差异

在使用ROLING()获得最大值时,是否可以排除每个窗口中的前n个值?

为什么在安装了64位Python的64位Windows 10上以32位运行?