我已經嘗試了 stackoverflow 上的多種方法,但對我來說沒有任何效果。
這是HTML的模式
<div class="single-model">
<label> MacBook<lable>
<div>
<div class="single-model">
<label> MacBook Air<lable>
<div>
<div class="single-model">
<label> MacBook Air Pro<lable>
<div>
我想提取出<label>標簽里面的模型名稱<div class= "single-model">
這是我的代碼:
from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.chrome.service import Service
Brand = ["Apple"]
model_name = []
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get("https://www.google.com")
search_url="https://northladder.com/en/ae/electronics/laptop/apple"
driver.get(search_url)
#Scroll to the end of the page
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(5)
modelname = driver.find_elements(by=By.CLASS_NAME, value="single-model")
for m in modelname:
model = m.find_elements(by=By.TAG_NAME, value="label")
print(model.text)
這print(model.text)
是給我一個錯誤
AttributeError: 'list' object has no attribute 'text'
uj5u.com熱心網友回復:
find_elements 為您提供一個元素串列,而不是單個元素(即使只找到 1 個匹配項),因此您需要遍歷元素以獲取其中的文本
for m in modelname:
models = m.find_elements(by=By.TAG_NAME, value="label")
for modal in modals:
print(model.text)
或者,如果您只想在每個回圈中找到 1 個標簽,您可以使用find_element而不是find_elements然后它只會給您 1
uj5u.com熱心網友回復:
嘗試這個
modelname = driver.find_elements(By.XPATH, "//label")
for m in modelname:
model= m.get_attribute('innerHTML')
Model_name.append(model)
print(Model_name)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/488498.html
