我想從劍橋詞典中獲取美國的發音,到目前為止我的代碼在這里:
from selenium import webdriver
from YDSData import tdata, dummydata
words = dummydata
link='https://dictionary.cambridge.org/dictionary/english'
driver = webdriver.Chrome()
for word in words:
driver.get(link "/" str(i))
try:
result = driver.find_elements_by_xpath('//*[@id="page-content"]/div[2]/div[1]/div[2]/div/div[3]/div/div/div[1]/div[2]/span[2]/span[3]/span')
print(content)
except:
driver.close()
這段代碼應該給我劍橋詞典上的美國發音,但它列印:
[<selenium.webdriver.remote.webelement.WebElement (session="285ac250c8925dd19eb01a7853c1f219", element="6f609e22-76ab-443d-8216-4ac90aefda20")>]
[<selenium.webdriver.remote.webelement.WebElement (session="285ac250c8925dd19eb01a7853c1f219", element="c7d8a664-d162-4d2c-8c87-dd8e10211024")>]
[<selenium.webdriver.remote.webelement.WebElement (session="285ac250c8925dd19eb01a7853c1f219", element="7f163600-d25f-4000-893f-44693736ed41")>]
另外,它非常慢是代碼有問題嗎?
編輯:
我已經重寫了答案部分的代碼以找出問題,現在代碼如下所示:
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from YDSData import tdata, dummydata
driver = webdriver.Chrome()
driver.get("https://dictionary.cambridge.org/dictionary/english/dictionary")
print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[text()='us']//following-sibling::span[@class='pron dpron']"))).get_attribute("innerHTML"))
它可以作業,但代碼需要 8 分鐘才能作業,出現以下錯誤:
[5836:11428:0223/004955.530:ERROR:ssl_client_socket_impl.cc(995)] handshake failed; returned -1, SSL error code 1, net_error -201
[11580:7744:0223/005141.150:ERROR:gpu_init.cc(454)] Passthrough is not supported, GL is disabled, ANGLE is
[14788:5864:0223/005241.189:ERROR:chrome_browser_main_extra_parts_metrics.cc(227)] START: ReportBluetoothAvailability(). If you don't see the END: message, this is crbug.com/1216328.
[14788:5864:0223/005241.197:ERROR:chrome_browser_main_extra_parts_metrics.cc(230)] END: ReportBluetoothAvailability()
[14788:5864:0223/005241.215:ERROR:chrome_browser_main_extra_parts_metrics.cc(235)] START: GetDefaultBrowser(). If you don't see the END: message, this is crbug.com/1216328.
[14788:5864:0223/005241.243:ERROR:chrome_browser_main_extra_parts_metrics.cc(239)] END: GetDefaultBrowser()
[14788:11300:0223/005241.291:ERROR:device_event_log_impl.cc(214)] [00:52:41.291] USB: usb_device_handle_win.cc:1049 Failed to read descriptor from node connection: A device attached to the system is not functioning. (0x1F)
uj5u.com熱心網友回復:
這些是:
[<selenium.webdriver.remote.webelement.WebElement (session="285ac250c8925dd19eb01a7853c1f219", element="6f609e22-76ab-443d-8216-4ac90aefda20")>]
[<selenium.webdriver.remote.webelement.WebElement (session="285ac250c8925dd19eb01a7853c1f219", element="c7d8a664-d162-4d2c-8c87-dd8e10211024")>]
[<selenium.webdriver.remote.webelement.WebElement (session="285ac250c8925dd19eb01a7853c1f219", element="7f163600-d25f-4000-893f-44693736ed41")>]
當您在控制臺上列印WebElements時。
要列印文本/?d?k.??n.er.i/您可以使用以下定位器策略:
使用xpath:
driver.get("https://dictionary.cambridge.org/dictionary/english/dictionary") print(driver.find_element(By.XPATH, "//span[text()='us']//following-sibling::span[@class='pron dpron']").text)
要提取文本/?d?k.??n.er.i/理想情況下,您需要為visibility_of_element_located()引入WebDriverWait,您可以使用以下定位器策略:
使用XPATH:
driver.get("https://dictionary.cambridge.org/dictionary/english/dictionary") print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[text()='us']//following-sibling::span[@class='pron dpron']"))).get_attribute("innerHTML"))控制臺輸出:
/?d?k.??n.er.i/注意:您必須添加以下匯入:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC
您可以在如何使用 Selenium - Python 檢索 WebElement 的文本中找到相關討論
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/435271.html
標籤:Python 硒 硒网络驱动程序 路径 网络驱动程序等待
上一篇:如何計算在seleniumpython自動化中加載URl的時間
下一篇:無法在Python中找到元素
