1

我用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>如何從「chrome:// downloads」頁面獲取字符串

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() 

輸出:

<span id="name"> </span> 
+1

歡迎去吧! 請正確編輯您的代碼,並閱讀:https://stackoverflow.com/help/how-to-ask – Kev1n91

回答

0

你想從屏幕上的下載項目嗎? 右鍵單擊您嘗試點擊的元素,然後選擇「檢查」。 這將打開控制檯,您可以查看頁面上每個元素的特定標籤,並將鼠標懸停在它們上方。

我發現這爲包:

<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這些標籤的文本。這也適用於您下載文件後。

編輯:

test = """ 
<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> 
""" 
soup = BeautifulSoup(test, "lxml") 

fileDiv = soup.find("span", {"id": "name"}).text 

print(fileDiv) 

如果上述方法不奏效,試着這樣做:

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

是的,我用鼠標右鍵單擊並選擇「檢查」以獲取元素的ID,所以我使用代碼'soup.find('span',id ='name')'找出元素,但我仍然無法獲取字符串,字符串始終爲空。 – Johnny

+0

您是否嘗試過使用'ID'獲取'div'元素?也就是'fileDiv = soup.find(「div」,{「id」:「title-area」})'然後搜索這個''元素。 – RetardedJoker

+0

謝謝,我嘗試過,但仍然沒有字符串。 fileDiv = soup.find( 「格」,{ 「ID」: 「冠軍區」}) 打印(fileDiv) 輸出:

Johnny

0

是的,我用右鍵單擊並選擇'Inspect'拿到身份證件,所以我使用代碼soup.find('span', id='name')找出元素,但我仍然無法獲取字符串,字符串始終爲空。 - J

0

我將'lxml'更改爲'html',我收到如下警告消息,仍然無法獲取字符串。

警告(從警告模塊): 文件 「C:\ Python362 \ LIB \站點包\ bs4__init __ PY」,導線181 MARKUP_TYPE = MARKUP_TYPE)) UserWarning:沒有解析器明確規定,所以我m使用該系統的最佳可用HTML解析器(「lxml」)。這通常不是問題,但是如果您在另一個系統或不同的虛擬環境中運行此代碼,它可能會使用不同的分析器並且行爲不同。

導致此警告的代碼位於文件的第1行。爲了擺脫這樣的警告,改變的代碼看起來像這樣:

BeautifulSoup(YOUR_MARKUP})

這樣:

BeautifulSoup(YOUR_MARKUP, 「LXML」)

+0

依然拿不到字符串

Johnny