python - 无法从 zillow 网站上删除某些元素

标签 python html selenium beautifulsoup screen-scraping

我正在尝试抓取 zillow 网站的内容。

Ex- https://www.zillow.com/homedetails/689-Luis-Munoz-Marin-Blvd-APT-508-Jersey-City-NJ-07310/108625724_zpid/

问题是我无法抓取价格和税收历史记录的内容。 我认为它们是在页面加载时加载的 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>

这是最外层的元素,但里面没有任何元素。还尝试了 soup.find_all("table",class_ = "zsg-table yui3-toggle-content-minimized") ,其中没有产生。

最佳答案

您可以尝试等到需要<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 $750,000+159% $534 KELLER WILLIAM...
06/15/11 Sold $290,000-38.3% $206 Public Record
10/14/05 Sold $470,000 $334 Public Record

你也可以不使用 BeautifulSoup 来解析它,例如

print(table.find_element_by_xpath('.//td[text()="Listed for sale"]/following::span').text)

输出:

$750,000

print(table.find_element_by_xpath('.//td[text()="Sold"]/following::span').text)

输出:

$290,000

关于python - 无法从 zillow 网站上删除某些元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43906212/

相关文章:

python - 使用 Django 模板过滤器做数学?

python - 如何在 python pandas 中引用其他数据框创建新列

python - numpy/scipy 中的平方差和 (SSD)

html - 如何在我的 tumblr 静态页面上获得与我的主页(首页?)不同的链接颜色

Python Unresolved 引用导入 MIMEMultipart

python-3.x - 为 python 安装 selenium 时遇到问题

列表中重叠对的 Python 组合

javascript - jQuery 菜单 .hover() 影响 Dom/simplify 中远处的东西

javascript - 正则表达式在双引号文本中查找超过 2 个花括号

java - Selenium Webdriver.load.strategy 不稳定