如何从chrome://downloads页面获取字符串

2024-10-16 20:43:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我用Chromedriver来下载文件,然后我想解析"chrome://downloads"来获得下载状态,但是我无法得到字符串,请参考下面的代码和结果。我还检查了Chrome中的HTML。我可以看到<span id="name">Noto-hinted (1).zip</span>,但是如果我使用view page source,我就找不到字符串"Noto-hinted (1).zip"。它是<span id="name" hidden="[[completelyOnDisk_]]">[[data.file_name]]</span>

import time, bs4
from selenium import webdriver

url = "https://noto-website.storage.googleapis.com/pkgs/Noto-hinted.zip"
browser = webdriver.Chrome()
browser.get(url)
time.sleep(5)
browser.get("chrome://downloads/")
time.sleep(30)
soup = bs4.BeautifulSoup(browser.page_source,"lxml")
webElemlist = soup.find('span', id='name')
print(webElemlist)
time.sleep(300)

browser.quit()

输出:

^{pr2}$

Tags: 字符串namebrowseridsourcetimedownloadspage
2条回答

你想从屏幕上获取下载项目吗? 右键单击要单击的元素,然后选择“检查”。 这将打开控制台,当您将鼠标悬停在页面上时,您可以看到页面中每个元素的特定标记。在

我在包裹里找到了这个:

<div id="title-area">
    <a is="action-link" id="file-link" tabindex="0" role="link" hidden="" href="https://noto-website.storage.googleapis.com/pkgs/Noto-hinted.zip">Noto-hinted.zip</a>
    <span id="name">Noto-hinted.zip</span>
    <span id="tag"></span>
</div>

您需要做的就是使用id获取这些标记的文本。这也适用于下载文件后。在

编辑:

^{pr2}$

如果上述方法不起作用,请尝试执行以下操作:

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

我把'lxml'改为'html',我收到了如下警告消息,但仍然无法获取字符串。在

警告(来自警告模块): 文件“C:\Python362\lib\site packages\bs4\uuyu init_uj.py”,第181行 标记类型=标记类型) UserWarning:没有显式指定解析器,所以我使用了这个系统中最好的HTML解析器(“lxml”)。这通常不是问题,但如果您在另一个系统上或在不同的虚拟环境中运行此代码,它可能会使用不同的解析器并表现出不同的行为。在

导致此警告的代码位于文件的第1行。若要消除此警告,请更改如下所示的代码:

BeautifulSoup(您的标记})

为此:

BeautifulSoup(您的标记,“lxml”)

相关问题 更多 >