0
votes

Web grattage Trulia avec pythons sélénium

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:

Entrez la description de l'image ici P>

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')


0 commentaires

3 Réponses :


0
votes

On dirait que le CSS est généré à chaque fois ...

Je recommande d'utiliser XPath pour cette ...

Utiliser .text pour obtenir le texte. < / P>

Vous voulez probablement passer à l'élément parent avec le prix ... Utilisez donc (// div [@ aria-label = "Les tendances des prix sont basées sur l'estimation de Trulia"]) [1 ] //../ h3 / div comme votre xpath. xxx

693 Bluebird Canyon Drive, Beach Laguna, CA 92651 Trulia Estimation

Si vous utilisez le XPATH du prix, la sortie est la suivante:

693 Bluebird Canyon Drive, Beach Laguna, CA 92651 1,735 031 $


0 commentaires

3
votes

version utilisant beauxoup : xxx

impression: xxx

le sélecteur CSS H3: a (+ div l'étendue: contient ("trulia estimation")) trouve

qui a une balise
contenant < / Code> Avec String "Estimation Trulia" en tant que frère direct.

Lecture ultérieure:

CSS Selectors référence


1 commentaires

Répondre! Pour beauxoup



0
votes

Si vous voulez essayer sans beauxoup, xxx


0 commentaires