无法获取在地图上散开一些点的所有名称

时间:2019-03-29 12:30:29

标签: python json python-3.x web-scraping

我已经用python编写了一个脚本,通过单击地图上所有可用的点来解析填充的每个框的内容。我只想获取其他属性的名称。

mapLink

那里大约有6566点。我从chrome开发工具中找到了一个包含69个名称的链接。

到目前为止我的尝试:

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'])
  

如何获取所有名称来阐明这些点?

1 个答案:

答案 0 :(得分:0)

这与查询参数有关。您必须要么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()

为我提供了70个POI元素

我的假设

我假设是这样的:

使用瑞士Coordiante系统 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()

给我429个POI元素