Веб-скребок Python Selenium для Redfin

Я пытаюсь создать парсер для Redfin. Я заметил, что для Redfin Estimate имя класса называется «statsValue». Но это имя существует в 5 местах, поэтому я подумал, что это:

Веб-скребок Python Selenium для Redfin

Имя класса «info-block avm» существует только одно, я думал, что смогу использовать его для получения statsValue, поскольку он кажется своего рода родительским классом.

Я совершенно новичок в веб-скрейпинге и селене. Вот мой код:

from selenium import webdriver
from selenium.webdriver.remote import webelement
import pandas as pd
import time

driver = webdriver.Chrome('chromedriver.exe')
driver.get('https://www.redfin.com/')
time.sleep(2)
search_box = driver.find_element_by_name('searchInputBox')
search_box.send_keys('693 Bluebird Canyon Drive, Laguna Beach, CA 92651')
search_box.submit()

time.sleep(2)
# element = driver.find_elements_by_class_name('statsValue')
# print(element[0].get_attribute('innerHTML'))
element = driver.find_element_by_class_name('info-block avm')


driver.quit()

Проблема, с которой я сталкиваюсь, заключается в том, что когда я нахожу «информационный блок avm», как мне вернуть значение под ним на опубликованном изображении?

Вы можете использовать xpath

Joshua Nixon 18.06.2019 22:36
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
1
166
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Ниже приведены примеры того, как вы можете получить цену. Информацию о том, как использовать селекторы, вы можете найти по следующим ссылкам css и xpath.

  1. price = driver.find_element_by_css_selector('.info-block.avm .statsValue').text
  2. price = driver.find_element_by_css_selector('.avm .statsValue').text
  3. element = driver.find_element_by_class_name('avm')
    price = price.find_element_by_class_name('statsValue').text

Лучше всего использовать ожидания Явный или Скрытый вместо time.sleep().

Другие вопросы по теме