我正在尝试提取特定区域http://www.zillow.com/richardson-tx/的地理坐标,其中包含房地产信息(待售房屋)。这些由点表示。我想得到这些点的坐标。我一直在使用以下代码。
var jq = document.createElement('script');
jq.src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.4/jquery.min.js";
document.getElementsByTagName('head')[0].appendChild(jq);
任何人都可以帮助我提供正确的方法来提取坐标值。它们与itemprop = geo。
一样被提及例如,当我们在Chrome中的zillow上搜索Richardson中的属性时。我们打开开发工具(F12),我尝试在控制台中键入它,以便找到:
jQuery('span[itemprop=geo]')
按Enter,然后我尝试了:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="auto">
<uses-sdk android:minSdkVersion="22" android:targetSdkVersion="22" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<application android:label="DemoApp" android:debuggable="true">
</application>
</manifest>
答案 0 :(得分:0)
你的jquery看起来是正确的,你只是没有正确地将它翻译成BeautifulSoup。
coord_tags = soup.find_all("span", attrs={"itemprop":"geo"})
# <span itemprop="geo" itemscope="" itemtype="http://schema.org/GeoCoordinates">
# <meta content="32.978499" itemprop="latitude"/>
# <meta content="-96.728306" itemprop="longitude"/>
# </span>
评论中的标记是列表coord_tags
中返回的项目的示例。此代码将查找属性<span>
等于itemprop
的所有geo
代码。
在这里,每个范围包含经度和纬度,因此您可以迭代列表中的每个项目以将其拉出。您希望content
代码的meta
属性包含itemprop
longitude
和latitude
。以下代码将获取该信息并将其放入元组中。
coordinates = [
(
c.find("meta", attrs={"itemprop":"latitude"}).attrs["content"],
c.find("meta", attrs={"itemprop":"longitude"}).attrs["content"]
)
for c in coord_tags
]
# ('-96.728306', '32.978499')
评论中的元组是此列表理解创建的列表中的一个项目的示例。