使用 python 和 Selenium,我無法抓取在該網站上找到的任何 JavaScript 插入資料。我已經在其他網站上用動態生成的內容測驗了我的代碼,它似乎可以作業,所以想知道這是否是在這個網站上生成 JS 的某種特定方式?
我希望在網站上了解該商品的庫存情況。下面的代碼生成以下例外:selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"//div[@id="theList"]/article[1]//div[@]/div/text()"}但我知道這個 xpath 可以通過在 chrome 開發工具中嘗試它來作業。
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.common.exceptions import TimeoutException
service = Service(ChromeDriverManager().install())
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(service=service, options=options)
driver.get('https://www.deejay.de/velvet velour')
elem = driver.find_element(
By.XPATH, '//div[@id="theList"]/article[1]//div[@]/div[1]')
print(elem.text)
閱讀相關的 SO 帖子我想可能是我需要手動告訴驅動程式等待頁面加載,所以我嘗試了這個:
service = Service(ChromeDriverManager().install())
options = webdriver.ChromeOptions()
options.add_experimental_option('excludeSwitches', ['enable-logging'])
driver = webdriver.Chrome(service=service, options=options)
driver.get('https://www.deejay.de/velvet velour')
try:
elem = WebDriverWait(driver=driver, timeout=20).until(
lambda x: x.find_element(By.XPATH, '//div[@id="theList"]/article[1]//div[@]/div[1]'))
print(elem.text)
except TimeoutException:
print('took too long')
但它總是超時,并回傳我的例外訊息。
任何想法為什么這可能不起作用?正如我所說,我可以從其他網站獲得 JS 生成的代碼,但由于某種原因不能從deejay.de
uj5u.com熱心網友回復:
您需要先切換到 iframe。
iframe = WebDriverWait(driver, 30).until(EC.presence_of_element_located(
(By.XPATH, "//iframe[@id='myIframe']")))
driver.switch_to.frame(iframe)
然后找到所有物品并像這樣列印它們的庫存情況
items = driver.find_elements(By.XPATH, "//div[@class='order']/div[1]")
for item in items:
print(item.text)
最后切換回默認內容以訪問 iframe 之外的元素
driver.switch_to.default_content()
注意:您需要匯入以下內容
from selenium.webdriver.support import expected_conditions as EC
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/455206.html
標籤:Python 硒 硒网络驱动程序 网页抓取 硒铬驱动程序
上一篇:重寫下載CSV腳本以具有分隔符
