J'essaie de faire des sites WebSeCrope l'estimation Trulia pour une adresse donnée. Bien que certaines adresses n'aient pas une estimation de Trulia. Je veux donc d'abord essayer de trouver le texte 'Trulia Estimation' et s'il est trouvé, je vais essayer de trouver la valeur. Pour le moment, je ne peux pas comprendre comment trouver le texte d'estimation Trulia qui est présenté ici:
Voici le code que j'ai jusqu'à présent: P>
from selenium import webdriver
from selenium.webdriver.remote import webelement
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
import pandas as pd
import time
from bs4 import BeautifulSoup
import os
from datetime import datetime
from selenium.webdriver import ActionChains
driver = webdriver.Firefox(executable_path = 'C:\\Users\\Downloads\\geckodriver-v0.24.0-win64\\geckodriver.exe')
def get_trulia_estimate(address):
driver.get('https://www.trulia.com/')
print(address)
element = (By.ID, 'homepageSearchBoxTextInput')
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(element)).click()
WebDriverWait(driver, 10).until(EC.element_to_be_clickable(element)).send_keys(address)
search_button = (By.CSS_SELECTOR, "button[data-auto-test-id='searchButton']")
WebDriverWait(driver, 50).until(EC.element_to_be_clickable(search_button)).click()
time.sleep(3)
soup = BeautifulSoup(driver.page_source, 'html.parser')
results = soup.find('div', {'class', 'Text__TextBase-sc-1cait9d-0 OmRik'})
print(results)
get_trulia_estimate('693 Bluebird Canyon Drive, Laguna Beach, CA 92651')
3 Réponses :
On dirait que le CSS est généré à chaque fois ...
Je recommande d'utiliser XPath pour cette ... p>
Utiliser Vous voulez probablement passer à l'élément parent avec le prix ... Utilisez donc 693 Bluebird Canyon Drive, Beach Laguna, CA 92651
Trulia Estimation p>
blockQuote> Si vous utilisez le XPATH du prix, la sortie est la suivante: p> 693 Bluebird Canyon Drive, Beach Laguna, CA 92651
1,735 031 $ P>
blockQuote> p> .text code> pour obtenir le texte. < / P> (// div [@ aria-label = "Les tendances des prix sont basées sur l'estimation de Trulia"]) [1 ] //../ h3 / div code> comme votre xpath. p>
version utilisant impression: p> le sélecteur CSS Lecture ultérieure: P> CSS Selectors référence strong> p> p>
Répondre! Pour beauxoup code>: H3: a (+ div l'étendue: contient ("trulia estimation")) code> trouve code> qui a une balise
< / Code> Avec String "Estimation Trulia" en tant que frère direct. P>
beauxoup code>
Si vous voulez essayer sans beauxoup,