R ನ httr ನಲ್ಲಿ ಪ್ರಾಕ್ಸಿಗಳನ್ನು ತಿರುಗಿಸಿ ಮತ್ತು ಡೌನ್ಲೋಡ್ ಮಾಡಿದ HTML ಅನ್ನು ಪಾರ್ಸ್ ಮಾಡಿ
ಪ್ರತಿ httr ವಿನಂತಿಯಲ್ಲಿ ಪ್ರಾಕ್ಸಿ ಸಾಲನ್ನು ಬದಲಿಸಿ ಮತ್ತು ಡೌನ್ಲೋಡ್ ಆದ ಬೈಟ್ಗಳನ್ನು xml2 ಮತ್ತು rvest ಗೆ ರವಾನಿಸಿ.
ಪ್ರಾಕ್ಸಿ ಆಯ್ಕೆಯನ್ನು ಡೌನ್ಲೋಡ್ ಕಾರ್ಯಾಚರಣೆಯಲ್ಲೇ ಇರಿಸಿ. httr ಪುಟವನ್ನು ಹಿಂತಿರುಗಿಸಿದ ನಂತರ URL ಅನ್ನು ಬೇರೆ ಡೌನ್ಲೋಡರ್ಗೆ ಕೊಡುವ ಬದಲು ಆ ಪ್ರತಿಕ್ರಿಯೆಯ ಬೈಟ್ಗಳನ್ನು ಪಾರ್ಸ್ ಮಾಡಿ.
urls ವೆಕ್ಟರ್ ಮತ್ತು host ಹಾಗೂ ಪೂರ್ಣಾಂಕ port ಕಾಲಮ್ಗಳಿರುವ ಖಾಲಿಯಲ್ಲದ data frame proxies ನೀಡಲಾಗಿದೆ:
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 ಮತ್ತು ಅಗತ್ಯವಿರುವ ಹೊರತೆಗೆಯುವ ಕಾರ್ಯಗಳನ್ನು ಅನ್ವಯಿಸಿ. ಬದಲಾಗಿ read_html ಗೆ URL ನೀಡಿದರೆ ಆ ಮಾರ್ಗದ ಸ್ವಂತ ನೆಟ್ವರ್ಕ್ ಸಂರಚನೆಯೊಂದಿಗೆ ಹೊಸ ಪಡೆಯುವಿಕೆ ಆರಂಭವಾಗುತ್ತದೆ.
ದೃಢೀಕೃತ ಪ್ರಾಕ್ಸಿಗಳಿಗೆ ಆಯ್ಕೆ ಮಾಡಿದ ಖಾತೆಯನ್ನು use_proxy ನ username ಮತ್ತು password ಆರ್ಗ್ಯುಮೆಂಟ್ಗಳ ಮೂಲಕ ರವಾನಿಸಿ. ಬೇರೆ ಎಂಡ್ಪಾಯಿಂಟ್ ಬೇರೆ ಸಾರ್ವಜನಿಕ ನಿರ್ಗಮನ IP ಖಾತರಿ ನೀಡುವುದಿಲ್ಲ, ಆದ್ದರಿಂದ ಸೇವೆಯ ನಿಜವಾದ ನಿರ್ಗಮನ ವರ್ತನೆಯ ಪ್ರಕಾರ ಪೂಲ್ ಆಯ್ಕೆಮಾಡಿ.