Как перебирать до последней страницы сайта и записывать данные построчно в файл .csv? - PullRequest
3 голосов
/ 15 апреля 2020

Я пытаюсь почистить некоторые действительно рабочие вакансии для личных вещей (код ниже), однако в настоящее время мне нужно go до последней страницы, чтобы узнать, каков его "индекс" или номер страницы, тогда я могу итерация от первой до последней страницы.

Я хотел, чтобы это было автоматически c, где я предоставляю только URL-адрес, а остальное функция позаботится. Кто-нибудь может мне помочь? Кроме того, так как я собираю пару сотен страниц, я боюсь, что меня выгонят, поэтому я хотел убедиться, что получу как можно больше данных, поэтому я записываю в файл csv, как в примере ниже. Есть ли лучший способ сделать это тоже?

Действительно, мне не дали ключ API, так что это единственный метод, который я знаю. Вот код:

## squencing the pages based on the result (here i just did 1 page to 5th page)
page_results <- seq(from = 10, to = 50, by = 10)

first_page_url <- "https://www.indeed.com/jobs?q=data+analyst&l=United+States"

for(i in seq_along(page_results)) {

   Sys.sleep(1)
   url <- paste0(first_page_url, "&start=", page_results[i]) #second page will have url+&start= 20 and so on.

   page <- xml2::read_html(url)

   #### 
   #bunch of scraping from each page, method for that is implemented already
   #....
   ####

   print(i) #prints till fifth page, so i will print 1 to 5

   #I also wanted to write CSV line by line so if some error happens I atleast get everythinh pre-error
   # do you anything efficient than this? 
   write.table(as.data.frame(i), "i.csv", sep = ",", col.names = !file.exists("i.csv"), append = T)
}

1 Ответ

0 голосов
/ 30 апреля 2020

Я воспользовался этим советом и хотел закрыть этот ответ, чтобы уменьшить открытый вопрос. Так ответил на мой вопрос. Спасибо СО сообществу за постоянную помощь.

"Я думаю, что ручной подход, при котором вы решаете дать начало и конец страницы, имеет больше смысла, и" дружественный просмотр ", потому что вы можете контролировать, сколько страниц вы хотите получить (плюс уважает серверы компании). Вы знаете, через некоторое время вы видите те же описания работы. Так что придерживайтесь текущего подхода на мой взгляд. О написании файла .csv за одну итерацию, я думаю, что это хорошо. Кто-то лучше меня должен определенно скажи что-нибудь. Потому что у меня еще недостаточно знаний в R ". - UltaPitt

...