我正在嘗試從此頁面中提取name和phone number
from selenium import webdriver
# location of chromedriver.exe
browser = webdriver.Chrome("C:\Program Files (x86)\chromedriver.exe")
browser.get("https://www.houzz.com/professionals/general-contractor")
for title in browser.find_elements_by_xpath('//span[@]'):
title.click()
name=browser.find_elements_by_xpath('//h1[@]')
print(name)
uj5u.com熱心網友回復:
對于這種情況,您應該有一個回圈,按索引查找名稱,然后每次迭代將索引增加 1。
此外,您應該滾動到每個元素,讓 selenium 知道元素在它們的視口中。
代碼 :
browser = webdriver.Chrome("C:\Program Files (x86)\chromedriver.exe")
browser.maximize_window()
browser.implicitly_wait(30)
browser.get("https://www.houzz.com/professionals/general-contractor")
size = browser.find_elements(By.XPATH, "//span[@itemprop='name']")
j = 1
for i in range(len(size)):
element = browser.find_element(By.XPATH, f"(//span[@itemprop='name'])[{j}]")
browser.execute_script("arguments[0].scrollIntoView(true);", element)
print(element.text)
j = j 1
輸出 :
Capital Remodeling
SOD Home Group
Innovative Construction Inc.
Baron Construction & Remodeling Co.
Luxe Remodel
California Home Builders & Remodeling Inc.
Sneller Custom Homes and Remodeling, LLC
123 Remodeling Inc.
Professional builders & Remodeling, Inc
Rudloff Custom Builders
LAR Construction & Remodeling
Erie Construction Mid West
Regal Construction & Remodeling Inc.
Mr. & Mrs. Construction & Remodeling
Bailey Remodeling and Construction LLC
更新 1:
browser= webdriver.Chrome(driver_path)
browser.maximize_window()
browser.implicitly_wait(30)
wait = WebDriverWait(browser, 30)
browser.get("https://www.houzz.com/professionals/general-contractor")
size = browser.find_elements(By.XPATH, "//span[@itemprop='name']")
j = 1
for i in range(len(size)):
element = browser.find_element(By.XPATH, f"(//span[@itemprop='name'])[{j}]")
browser.execute_script("arguments[0].scrollIntoView(true);", element)
print(element.text)
browser.execute_script("arguments[0].click();", element)
wait.until(EC.element_to_be_clickable((By.XPATH, "//button[@data-component='Pro Phone Link']"))).click()
print(wait.until(EC.visibility_of_element_located((By.XPATH, "//a[@data-component='Call Pro']"))).text)
#wait.until(EC.element_to_be_clickable((By.LINK_TEXT, "Website"))).click()
browser.execute_script("window.history.go(-1)")
j = j 1
進口:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/313841.html
上一篇:Xpathpython包含值
