Очистка всех ссылок внутри тега <div>в R - PullRequest
0 голосов
/ 26 сентября 2018

Я новичок в поиске в интернете и мне нужна помощь.Я пытаюсь собрать данные с сайта свойств, на котором есть ~ 20 страниц, и на каждой странице есть ~ 18 ссылок на различные свойства.Моя конечная цель - очистить все данные от каждой ссылки свойства.Для этого я подумываю запустить цикл для 20 страниц, увеличив параметр страницы на 1.

Но перед этим мне нужно собрать данные из каждого свойства на одной странице, для которой мне нужны ссылки навсе свойства на одной странице, поэтому необходимо соскрести все ссылки (со свойствами) со страницы.Я пытался добиться этого, используя html_nodes ("a") , но безуспешно.

Вот страница и сайт, которые я пытаюсь очистить.

https://property.jll.co.in/search?city=Hyderabad&mode=list-view&page=0

Вот фрагмент кода, который я использую для получения всех ссылок на одной странице, но не получаю желаемый результат.Я также пробовал использовать разные классы и CSS-селекторы.

url <- 'https://property.jll.co.in/search?city=Hyderabad&mode=list-view&page=0'
download.file(url, destfile = "scrapedpage.html", quiet=TRUE)
content <- read_html("scrapedpage.html")

content %>%
html_nodes("a") %>%
head()

Буду признателен, если кто-нибудь сможет здесь помочь.Заранее спасибо.

1 Ответ

0 голосов
/ 26 сентября 2018

Эта веб-страница строит свою структуру в вашем веб-браузере на основе данных в теге <script>.Когда вы загружаете его, JavaScript не запускается.

data = html_text(html_nodes(content,"script")[10])

substr(data,1,100)
### [1] "window.store = {\"properties\":[{\"PropertyId\":\"109667\",\"PropertyName\":\"White House - Block A\",\"Address"

Вы, вероятно, можете проанализировать эти данные, используя JSON-анализатор в R, если вы разбили бит назначения с самого начала с помощью substr:

> d = rjson::fromJSON(substr(data,16,nchar(data)))
> names(d)
[1] "properties"            "units_count"           "units_count_text"     
[4] "properties_count_text" "map_data"              "pagination"           
[7] "view_mode"             "query_string"         

Затем вы можете развернуть, например:

> d$map_data[[1]]
$PropertyName
[1] "White House - Block A"

$TransactionType
[1] "For Lease"

$Address
[1] "Kundanbagh Colony"

$ListingTypeDescription
[1] "Lease"
...