Отказ от ответственности: Это мой первый набросок поиска в Интернете
У меня есть список из ~ 400 URL-адресов результатов поиска, которые я пытаюсь перебрать с помощью Selenium для сбора информации.В какой-то момент меня перенаправили и представили следующий текст:
"Ваш доступ к VINELink.com был отклонен из-за более высоких, чем обычно, уровней использования ... Вы пытаетесь получить доступ к этомувеб-сайт со следующего IP-адреса. Убедитесь, что настройки брандмауэра не ограничивают доступ. [МОЙ IP-АДРЕС] "
Есть ли способ создать список действительных случайных IP-адресов, выберите один случайным образом?в цикле и передать его в Selenium WebDriver, чтобы избежать блокировки?
Я понимаю, что у этого вопроса есть этические соображения (на самом деле, я связался с сайтом, чтобы объяснить мой случай использования и спросить,они могут разблокировать мой реальный IP-адрес);Меня больше всего интересует, можно ли это сделать.
Сокращенный список URL-адресов:
['http://www.vinelink.com/vinelink/servlet/SubjectSearch?siteID=34003&agency=33&offenderID=2662',
'http://www.vinelink.com/vinelink/servlet/SubjectSearch?siteID=34003&agency=33&offenderID=A21069',
'http://www.vinelink.com/vinelink/servlet/SubjectSearch?siteID=34003&agency=33&offenderID=B59293',
...]
Сокращенный код цикла (отсутствует фактический список действительных IP-адресов):
info = {}
for url in detail_urls:
proxy = ### SELECT RANDOM IP ADDRESS FROM A LIST OF VALID IP ADDRESSES ###
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--proxy-server='+str(proxy))
driver = webdriver.Chrome(executable_path='/PATH/chromedriver', options=chrome_options)
driver.get(url)
driver.implicitly_wait(3)
if drive.find_element_by_xpath('//*[@id="ngVewDiv"]/div/div/div/div[3]/div[3]/div[2]/div/search-result/div/div[4]/div[1]/more-info/div[1]/button'):
button = driver.find_element_by_xpath('//*[@id="ngVewDiv"]/div/div/div/div[3]/div[3]/div[2]/div/search-result/div/div[4]/div[1]/more-info/div[1]/button').click()
name = driver.find_element_by_xpath('//*[@id="ngVewDiv"]/div/div/div/div[3]/div[3]/div[2]/div/search-result/div/div[1]/div/div[1]/span[1]/span[1]/div/div/div[2]/span')
name = name.text
offenderid = driver.find_element_by_xpath('//*[@id="ngVewDiv"]/div/div/div/div[3]/div[3]/div[2]/div/search-result/div/div[4]/div[1]/more-info/div[2]/div/div/div[2]/div[1]/div/div[2]/span')
offenderid = offenderid.text
info[name] = [offenderid]
driver.close()
else:
driver.close()