Python 如何从Zillow链接中提取估计的主值?

Python 如何从Zillow链接中提取估计的主值?,python,html,beautifulsoup,Python,Html,Beautifulsoup,我希望我的代码能够去掉Zestimate值,以便使用它(在本例中,10037774)。我该怎么做呢?您可以使用selenium更好地模拟浏览器: import re from selenium import webdriver d = webdriver.Chrome() d.get('https://www.zillow.com/homedetails/5841-Round-Meadow-Rd-Hidden-Hills-CA-91302/19882656_zpid/') result = re

我希望我的代码能够去掉Zestimate值,以便使用它(在本例中,
10037774
)。我该怎么做呢?

您可以使用
selenium
更好地模拟浏览器:

import re
from selenium import webdriver
d = webdriver.Chrome()
d.get('https://www.zillow.com/homedetails/5841-Round-Meadow-Rd-Hidden-Hills-CA-91302/19882656_zpid/')
result = re.findall('(?<=Home Value:\s)\$[\d,\s]+', d.page_source)[0]

Zestimate是div class=“主页摘要行”中的第二个跨距

使用精美的汤:

row  = soup.findAll("div", {"class": "home-summary-row"})

然后您应该能够选择div的子级,或者按行进行解析。

首先,网站在识别Python脚本时返回了不完整的数据。要处理这个问题,您必须使用一个假的
用户代理来模拟浏览器请求

import requests

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36'}
r = requests.get('https://www.zillow.com/homes/for_sale/19882656_zpid/34.217551,-118.600674,34.122534,-118.723412_rect/12_zm/1_fr/', headers=headers)
这将提供页面源中可用的所有元素。但是现在,许多元素是用JavaScript动态生成的。因此,它们在页面源中不可用。您想要的值位于
中,在检查元素时可以在开发人员工具中看到该值

但是在页面源代码中,这个标记看起来像

<span class=""> $10,037,734 <span class="value-suffix">   </span></span>
<meta property="zillow_fb:description" content="Zestimate&reg; Home Value: $10,037,734. "/>

还有另一种方法可以获取这些数据。在页面源代码的顶部,有一个标签

<span class=""> $10,037,734 <span class="value-suffix">   </span></span>
<meta property="zillow_fb:description" content="Zestimate&reg; Home Value: $10,037,734. "/>
如果您不想要圆点
,可以将其剥离

meta = soup.find('meta', property='zillow_fb:description')['content']
print(meta.split(':')[1])
#  $10,037,734.