Вам нужно будет установить куки, чтобы сделать успешный запрос.
Необходимо проверить, разрешает ли сайт (sahibinden) очищать.
robotstxt::paths_allowed(paths = "https://www.sahibinden.com/satilik", warn = FALSE)
-> robotstxt делает Кажется, не запрещайте это - , если вы обновляете сайт после удаления файлов cookie в браузере, сайт больше не разрешает доступ и сообщает о необычном поведении -> указание на меры против царапанья
- Обязательно ознакомьтесь с условиями использования.
Поэтому я хотел бы поделиться «теоретическим» кодом, но не требуемыми данными cook ie, которые в любом случае зависят от пользователя.
Полный код будет читать:
library(xml2)
library(httr)
library(magrittr)
library(DT)
url <- "https://www.sahibinden.com/satilik"
YOUR_COOKIE_DATA <- NULL
if(is.null(YOUR_COOKIE_DATA)){
stop("You did not set your cookie data.
Also please check if terms of usage allow the scraping.")
}
response <- url %>% GET(add_headers(.headers = c(Cookie = YOUR_COOKIE_DATA))) %>%
content(type = "text", encoding = "UTF-8")
xpathes <- data.frame(
XPath0 = 'td[2]',
XPath1 = 'td[3]/a[1]',
XPath2 = 'td/span[1]',
XPath3 = 'td/span[2]',
XPath4 = 'td[4]',
XPath5 = 'td[5]',
XPath6 = 'td[6]',
XPath7 = 'td[7]',
XPath8 = 'td[8]'
)
nodes <- response %>% read_html %>% html_nodes(xpath =
"/html/body/div/div/form/div/div/table/tbody/tr"
)
output <- lapply(xpathes, function(xpath){
lapply(nodes, function(node) html_nodes(x = node, xpath = xpath) %>%
{ifelse(length(.), yes = html_text(.), no = NA)}) %>% unlist
})
output %>% data.frame %>% DT::datatable()
Относительно права на очистку данных сайта. Я пытаюсь следовать: Следует ли помечать вопросы, которые нарушают Условия использования API? . Хотя в данном случае это «потенциальное нарушение».
Чтение файлов cookie программно:
Я не уверен, что с помощью браузера можно полностью пропустить: