小编hug*_*hug的帖子

如何使用 R 和 rvest 轮换代理和 IP 地址

我正在进行一些抓取,但当我解析大约 4000 个 URL 时,该网站最终会检测到我的 IP,并每 20 次迭代就会阻止我。

我已经写了一堆Sys.sleep(5)tryCatch所以我不会太快被封锁。

我使用 VPN,但我必须时不时地手动断开连接并重新连接才能更改 IP。对于这样一个需要整夜运行的刮刀来说,这不是一个合适的解决方案。

我认为轮换代理应该可以完成这项工作。

这是我当前的代码(至少是其中的一部分):

library(rvest)
library(dplyr)

scraped_data = data.frame()

for (i in urlsuffixes$suffix)
  {
  
  tryCatch({
    message("Let's scrape that, Buddy !")
    
    Sys.sleep(5)
 
    doctolib_url = paste0("https://www.website.com/test/", i)

    page = read_html(site_url)
    
    links = page %>%
      html_nodes(".seo-directory-doctor-link") %>%
      html_attr("href")
    
    Sys.sleep(5)
    
    name = page %>%
      html_nodes(".seo-directory-doctor-link") %>%
      html_text()
    
    Sys.sleep(5)
    
    job_title = page %>%
      html_nodes(".seo-directory-doctor-speciality") %>%
      html_text()
    
    Sys.sleep(5)
    
    address = page %>%
      html_nodes(".seo-directory-doctor-address") %>%
      html_text()
    
    Sys.sleep(5)
    
    scraped_data = rbind(scraped_data, data.frame(links,
                                                  name,
                                                  address, …
Run Code Online (Sandbox Code Playgroud)

vpn proxy screen-scraping r rvest

4
推荐指数
1
解决办法
2368
查看次数

标签 统计

proxy ×1

r ×1

rvest ×1

screen-scraping ×1

vpn ×1