无法从 zillow 网站上删除某些元素
Can't scrape some elements off of zillow website
我正在尝试抓取 zillow 网站的内容。
问题是我无法抓取价格和税收历史记录的内容。
我认为它们是 javascript 在页面加载时加载的元素,因此尝试使用 selenium 但我仍然无法获取它们。
以下是我尝试过的。
代码
phistory = soup.find("div",{"id": "hdp-price-history"})
print phistory
Html
<div class="loading yui3-widget yui3-async-block yui3-complaintstable yui3-hdppricehistory yui3-hdppricehistory-content" id="hdp-price-history">
div class="zsg-content-section zsg-loading-spinner_lg"></div>
</div>
这是最外层的元素,但没有任何元素 inside.Also 尝试过 soup.find_all("table",class_ = "zsg-table yui3-toggle-content-minimized")
会产生 none。
您可以尝试等到所需的 <table>
生成并变得可见:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC
driver.get("https://www.zillow.com/homedetails/689-Luis-Munoz-Marin-Blvd-APT-508-Jersey-City-NJ-07310/108625724_zpid/")
table = wait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//div[@id="hdp-price-history"]//table')))
print(table.text)
输出:
DATE EVENT PRICE $/SQFT SOURCE
05/03/17 Listed for sale 0,000+159% 4 KELLER WILLIAM...
06/15/11 Sold 0,000-38.3% 6 Public Record
10/14/05 Sold 0,000 4 Public Record
你也可以不用BeautifulSoup
解析它,例如
print(table.find_element_by_xpath('.//td[text()="Listed for sale"]/following::span').text)
输出:
0,000
或
print(table.find_element_by_xpath('.//td[text()="Sold"]/following::span').text)
输出:
0,000
我正在尝试抓取 zillow 网站的内容。
问题是我无法抓取价格和税收历史记录的内容。 我认为它们是 javascript 在页面加载时加载的元素,因此尝试使用 selenium 但我仍然无法获取它们。 以下是我尝试过的。
代码
phistory = soup.find("div",{"id": "hdp-price-history"})
print phistory
Html
<div class="loading yui3-widget yui3-async-block yui3-complaintstable yui3-hdppricehistory yui3-hdppricehistory-content" id="hdp-price-history">
div class="zsg-content-section zsg-loading-spinner_lg"></div>
</div>
这是最外层的元素,但没有任何元素 inside.Also 尝试过 soup.find_all("table",class_ = "zsg-table yui3-toggle-content-minimized")
会产生 none。
您可以尝试等到所需的 <table>
生成并变得可见:
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wait
from selenium.webdriver.support import expected_conditions as EC
driver.get("https://www.zillow.com/homedetails/689-Luis-Munoz-Marin-Blvd-APT-508-Jersey-City-NJ-07310/108625724_zpid/")
table = wait(driver, 10).until(EC.visibility_of_element_located((By.XPATH, '//div[@id="hdp-price-history"]//table')))
print(table.text)
输出:
DATE EVENT PRICE $/SQFT SOURCE
05/03/17 Listed for sale 0,000+159% 4 KELLER WILLIAM...
06/15/11 Sold 0,000-38.3% 6 Public Record
10/14/05 Sold 0,000 4 Public Record
你也可以不用BeautifulSoup
解析它,例如
print(table.find_element_by_xpath('.//td[text()="Listed for sale"]/following::span').text)
输出:
0,000
或
print(table.find_element_by_xpath('.//td[text()="Sold"]/following::span').text)
输出:
0,000