Я хотел бы получить URL-ссылку на вывод из окна поиска. Например, если я наберу '4/271 Balmoral Road' в поле поиска https://www.realestate.co.nz/profile/, это покажет релевантные результаты, и это заставит меня перейти к https://www.realestate.co.nz/profile/0b27093b9ce641108f7a6033b9fdae28
То есть в R, если явведите «4/271 Balmoral Road» в качестве входных данных, я хочу, чтобы выходные данные были «https://www.realestate.co.nz/profile/0b27093b9ce641108f7a6033b9fdae28'
Не могли бы вы мне помочь? Это было бы очень полезно.
Я использовал Rvest со следующим кодом, но не работал
'https://www.realestate.co.nz/profile?query=4/271%20Balmoral%20Road' %>% read_html() %>% html_nodes(xpath = '//*[@id="ember386"]/div[1]/div/a') %>% html_attr('href')
Контент извлекается динамически. Вы можете использовать httr для отправки запроса адреса на сервер и jsonlite для обработки ответа json с сервера. Вы получаете 'slugs' для URL-адресов в ответе, которые необходимо объединить с базовой строкой для окончательного URL-адреса.
R:
library(httr) library(jsonlite) params = list('q' = '4/271 Balmoral Road') d <- jsonlite::parse_json(httr::GET(url = 'https://platform.realestate.co.nz/search/v1/suggest/property', query = params)) base <- 'https://www.realestate.co.nz/profile/' print(paste0(base, d$data[[1]]$slug))
илиИспользуемая версия OP:
library(httr) library(jsonlite) params = list('q' = '4/271 Balmoral Road') get <- GET(url = 'https://platform.realestate.co.nz/search/v1/suggest/property', query = params) json <- fromJSON(paste(get, collapse="")) base <- 'https://www.realestate.co.nz/profile/' print(paste0(base, json$data[[1]]$slug))
Py:
import requests params = (('q', '4/271 Balmoral Road'),) r = requests.get('https://platform.realestate.co.nz/search/v1/suggest/property' , params=params).json() links = [f"https://www.realestate.co.nz/profile/{i['slug']}" for i in r['data']] print(links[0])