Adakah cara mendapatkan Zestimate “This home” untuk bulan Januari setiap tahun dari 2015-2020 menggunakan Selenium of Beautiful Soup? [duplikat]
Dari link berikut saya ingin bisa mengikis data. Namun, ketika saya menggunakan Beautiful Soup, saya tidak dapat menemukannya di html dan Soup indah tidak berfungsi. Selain itu, saya pikir mungkin saya dapat menggunakan selenium untuk mengikis data ini, tetapi saya juga tidak dapat menemukan konten ini. Tahukah Anda bagaimana saya menggunakan selenium atau Beautiful Soup untuk mendapatkan Semangat dari "This home" untuk bulan Januari setiap tahun dari 2015-2020? Terima kasih atas bantuan Anda sebelumnya. Saya menggunakan Python.
https://www.zillow.com/homedetails/1954-Sandy-Point-Ln-Mount-Pleasant-SC-29466/10938706_zpid/

Jawaban
Coba kode di bawah ini, itu akan memberikan Zestimate untuk rumah.
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
import time
options = Options()
user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.50 Safari/537.36'
options.add_argument('user-agent={0}'.format(user_agent))
driver = webdriver.Chrome(options=options)
wait = WebDriverWait(driver, 20)
action = ActionChains(driver)
driver.get("https://www.zillow.com/homedetails/1954-Sandy-Point-Ln-Mount-Pleasant-SC-29466/10938706_zpid/")
Home_Value = wait.until(EC.presence_of_element_located((By.XPATH, "//a[text()='Home value']")))
action.move_to_element(Home_Value).click().perform()
Zestimate = driver.find_element_by_xpath('//*[@id="ds-home-values"]/div/div[1]/div/div[1]/div/div/p').text
print(Zestimate)
Mengenai - "Januari setiap tahun dari 2015-2020?" - Anda dapat menjalankan skrip yang sama secara manual di Jan untuk mendapatkan Zestimate terbaru. Anda juga dapat membuat pekerjaan cron. Tetapi saya tidak yakin bagaimana melakukan itu.
PS - Setelah menjalankan skrip ini sekitar 3-4 kali, sekarang saya menghadapi CAPTCHA. Ada penjelasan bagus yang tersedia di tautan INI
Untuk mengekstrak Zestimate yaitu Zestimate®: $4,232,581
Anda harus mendorong WebDriverWait untuk element_to_be_clickable()
dan Anda dapat menggunakan salah satu dari berikut Locator Strategi :
Menggunakan
XPATH
:driver.get('https://www.zillow.com/homedetails/1954-Sandy-Point-Ln-Mount-Pleasant-SC-29466/10938706_zpid/') print(WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.XPATH, "//span[contains(., 'For sale')]//following::span[contains(@class, 'ds-dashed-underline') and contains(., 'Zestimate')]//ancestor::span[2]"))).text)
Catatan : Anda harus menambahkan impor berikut:
from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.common.by import By from selenium.webdriver.support import expected_conditions as EC