Python запрос получить HREF URL от кнопки - PullRequest
0 голосов
/ 24 апреля 2019

Я пытаюсь создать небольшое приложение с использованием Python и запрашивает библиотеку, которая может получать результаты с испанского веб-сайта, который содержит несколько рекламных объявлений.Приложение веб-сайта напрямую не позволяет пользователю вводить координаты для поиска результатов, но оно имеет «интерфейс карты», который может помочь.

Если вы посмотрите на этот URL , вы увидите, чтокарта появляется с некоторыми результатами.Если я хочу просмотреть их, я должен нажать на кнопку с надписью «Листадо».Оказавшись там, легко получить информацию.

Проблема в том, что HTML-код за страницей «интерфейс карты» не содержит URL-адрес страницы со списком результатов.Он генерируется сложным JavaScript.Есть ли способ получить этот URL без использования какого-либо физического симулятора, такого как Selenium, и без репликации javascript?

Заранее спасибо.

1 Ответ

1 голос
/ 24 апреля 2019

Вы действительно должны включить свою попытку, но вот способ использования URL-адреса, найденный во вкладке сети

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