如何迭代到网站的最后一页并在 .csv 文件中逐行写入数据?

How to iterate till the last page of a website & write data row-by-row in a .csv file too?

我正在尝试抓取一些确实是个人资料的招聘信息(下面的代码),但是我目前必须翻到最后一页才能找出它的 "index" 或页码是什么,然后我是能够从第一页迭代到最后一页。

我想让它自动运行,我只提供 URL 并让函数自行处理。谁能帮帮我?另外,因为我要抓取 100 页,我担心我会被踢出局,所以我想确保获得尽可能多的数据,所以我写了一个 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)
}

我采纳了这个建议,并等待关闭这个答案以减少未解决的问题。所以回答了我自己的问题。感谢 SO 社区一直以来的帮助。

"I think the manual approach where you decide to give the page start and page end makes more sense, and "抓取友好”,因为你可以控制你想要获得多少页面(加上尊重公司服务器)。你知道一段时间后你会看到相同的职位描述。所以坚持我目前的方法“意见。关于每次迭代编写 .csv 文件,我认为这很好。比我更好的人肯定应该说些什么。因为我还没有足够的 R 知识。” – 乌尔塔皮特