Я пытаюсь построить веб-скребок для redfin, чтобы получить оценку redfin. У меня есть функция, которая делает это, и иногда это работает, а иногда это не работает. Я заметил, что причина, по которой это не работает, из-за функции отправки. Иногда страница Chrome не нажимает кнопку поиска (отправки) и переходит на страницу свойств.
Я не уверен, как решить эту проблему и сделать ее более последовательной.
Вот мой код:
from selenium import webdriver
from selenium.webdriver.remote import webelement
import pandas as pd
import time
from bs4 import BeautifulSoup
driver = webdriver.Chrome('chromedriver.exe')
driver.get('https://www.redfin.com/')
time.sleep(3)
def get_redfin_estimate(address):
search_box = driver.find_element_by_name('searchInputBox')
search_box.send_keys(address)
search_box.submit()
time.sleep(3)
soup = BeautifulSoup(driver.page_source, 'html.parser')
try:
price1 = soup.find('div', {'class', 'avm'}).div.text
return(price1)
except AttributeError:
try:
time.sleep(10)
price2 = soup.find('span',class_='avmLabel').find_next('span', class_='value').text
return(price2)
except:
return('N/A')
print(get_redfin_estimate('687 Catalina Laguna Beach, CA 92651'))
print(get_redfin_estimate('693 Bluebird Canyon Drive, Laguna Beach, CA 92651'))
driver.quit()