我在python中编写了一个脚本来解析在点击地图上可用的一些点时填充的每个框的内容。我只想获取不同属性的名称。
那边有大约6566个点。我从包含69个名字的chrome dev工具中找到了一个链接。
我到目前为止的尝试:
import requests
URL = 'https://map.search.ch/api/poi_html.json?mode=hover&mx1=750592&mx2=789504&my1=193536&my2=232448&zd=256&d=area-f008d02987f8c91d&lang=en&base=485000,296000&tel_was=immobilienmakler&tel_wo=nahe+Bezirk+Lenzburg'
res = requests.get(URL).json()
for item in res['pois']:
print(item['name'])
如何让所有名字解开这些点?
这与查询参数有关。你必须要么a)玩游戏,看看每个如何改变你的输出,或b)搜索他们的文档并找到可用信息的位置。但是您可以通过创建该字典并将其提供给您的请求来轻松地使用这些参数:
import requests
url = 'https://map.search.ch/api/poi_html.json'
payload = {
'mode': 'hover',
'mx1': '750592',
'mx2': '789504',
'my1': '193536',
'my2': '232448',
'zd': '256',
'd': 'area-f008d02987f8c91d',
'lang': 'en',
'base': '485000,296000',
'tel_was': 'immobilienmakler',
'tel_wo': 'nahe Bezirk Lenzburg'}
res = requests.get(URL, params=payload).json()
给了我POI中的70个元素
我的假设:
我假设是这样的:
使用S Swiss坐标系mx1和mx2 - 窗口x轴my1和my2的范围 - 窗口y轴的范围
更改这些数字可以“移动”地图区域,然后“放大”或缩小“。
即:
url = 'https://map.search.ch/api/poi_html.json'
payload = {
'mode': 'hover',
'mx1': '649216',
'mx2': '858112',
'my1': '124928',
'my2': '568288',
'zd': '512',
'd': 'area-f008d02987f8c91d',
'lang': 'en',
'base': '485000,296000',
'tel_was': 'immobilienmakler',
'tel_wo': 'nahe Bezirk Lenzburg'}
res = requests.get(URL, params=payload).json()
给了我POI中的429个元素