პროქსის არჩევანი თავად ჩამოტვირთვის ოპერაციაში დატოვეთ. მას შემდეგ, რაც httr გვერდს დააბრუნებს, გააანალიზეთ იმ პასუხის ბაიტები და URL სხვა ჩამომტვირთველს ნუ გადასცემთ.

მოცემულია urls ვექტორი და არაცარიელი data frame proxies host და მთელი რიცხვის port სვეტებით:

pages <- vector("list", length(urls))
stopifnot(nrow(proxies) > 0L)

for (i in seq_along(urls)) {
  row <- ((i - 1L) %% nrow(proxies)) + 1L
  response <- httr::GET(
    urls[[i]],
    httr::use_proxy(proxies$host[[row]], proxies$port[[row]]),
    httr::timeout(30)
  )
  httr::stop_for_status(response)
  pages[[i]] <- xml2::read_html(httr::content(response, as = "raw"))
}

საჯარო შუამავლებით დაშვებული საჯარო გვერდების მოთხოვნებისთვის HTTP პროქსიების სია გვაწვდის კანდიდატებს host და port სვეტებისთვის. ინდექსი ტრიალებს პირველი პროქსის სტრიქონიდან ბოლომდე და შემდეგ თავიდან იწყება. ყოველ გამოძახებას საკუთარი პროქსის კონფიგურაცია აქვს; R პროცესს შეუძლია განაგრძოს მუშაობა.

მიღებული გვერდები შეიცავს გაანალიზებულ HTML დოკუმენტებს. გამოიყენეთ rvest::html_elements და საჭირო ამოღების ფუნქციები ამ დოკუმენტებზე. URL-ის read_html-ზე გადაცემა სამაგიეროდ დაიწყებდა ახალ ჩამოტვირთვას იმ გზის საკუთარი ქსელის კონფიგურაციით.

ავტორიზებული პროქსიებისთვის არჩეული ანგარიში გადასცით use_proxy-ის username და password არგუმენტებით. განსხვავებული ბოლო წერტილი არ იძლევა განსხვავებული საჯარო გასასვლელი IP-ის გარანტიას, ამიტომ აუზი შეარჩიეთ სერვისის რეალური გასვლის ქცევის მიხედვით.

დაკავშირებული სტატიები