我正在尝试使用Python创建一个小型应用程序,并请求可以从包含多个广告的西班牙网站检索结果的库。该网站应用程序不直接允许用户输入坐标以寻找结果,而是具有可以提供帮助的“地图界面”。
如果您查看此URL,将会发现地图上显示了一些结果。如果要查看它们,则必须单击“ Listado”按钮。一旦到达那里,就很容易获得信息。
问题是“地图界面”页面后面的HTML代码不包含结果列表页面的URL。它是由复杂的javascript生成的。有没有办法在不使用任何物理模拟器(例如Selenium)或复制javascript的情况下获取此URL?
谢谢。
答案 0 :(得分:1)
您应该真正包括尝试,但是这是一种使用“网络”标签中找到的网址的方法
import requests
headers = {
'Referer' :'https://www.idealista.com/point/alquiler-viviendas/40.35324/-3.51313/14/con-metros-cuadrados-mas-de_62,metros-cuadrados-menos-de_116,pisos/mapa-google',
'User-Agent' : 'Mozilla/5.0'
}
with requests.Session() as s:
r = s.get('https://www.idealista.com/ajax/listingcontroller/livesearchmap.ajax?locationUri=&typology=1&operation=2&freeText=&liveSearch=true&zoom=14&northEast=40.372249460035604%2C+-3.485406687622117&southWest=40.3342251797178%2C+-3.540853312377976&uid=djaedoeimntj86uui175glt4cxh25wr3rvuqb4abrfib&adfilter_pricemin=default&adfilter_price=default&adfilter_area=62&adfilter_areamax=116&adfilter_amenity=default&adfilter_homes=1&adfilter_chalets=&adfilter_countryhouses=&adfilter_duplex=&adfilter_penthouse=&adfilter_rooms_0=&adfilter_rooms_1=&adfilter_rooms_2=&adfilter_rooms_3=&adfilter_rooms_4_more=&adfilter_baths_1=&adfilter_baths_2=&adfilter_baths_3=&adfilter_newconstruction=&adfilter_goodcondition=&adfilter_toberestored=&adfilter_housingpetsallowed=&adfilter_hasairconditioning=&adfilter_wardrobes=&adfilter_lift=&adfilter_flatlocation=&adfilter_parkingspace=&adfilter_garden=&adfilter_swimmingpool=&adfilter_hasterrace=&adfilter_boxroom=&adfilter_top_floor=&adfilter_intermediate_floor=&adfilter_ground_floor=&adfilter_agencyisabank=&adfilter_published=default&onlySavedAds=false', headers = headers).json()
print(r['jsonResponse']['listingSearchUrl'])