Очистите несколько страниц с помощью Selenium VS SELE-Detecting-Site Python

Мне месяц с кодированием и пару дней с Selenium.

Этот сайт чрезвычайно упрямый, и мне удалось заставить его работать один раз, и не более, хотя код не был изменен. Он продолжает обнаруживать меня после первой страницы.

Я попытался обойти несколько способов: [Start code]

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

Это варианты -

option=webdriver.ChromeOptions()
option.add_argument('--incognito')
option.add_argument('--disable-extensions')
option.add_argument('--profile-directory=Default')
option.add_argument('--disable-plugins-discovery')

browser=webdriver.Chrome(chrome_options=option)

Метод, который я нашел потенциально работающим:

for page in range(1,int(last_page),1):
    print(base_url+str(page)+base_search)
    browser.get(base_url+str(page)+base_search)
    grabber()
    browser.quit()

(Функция "grabber()" - это рабочая функция, которая захватывает нужные мне данные)

Хотя - по-видимому, как только вы выйдете из браузера и попытаетесь открыть другой браузер в том же сеансе - сеанс завершается сбоем ([WinError 10061]). Это могло бы быть круто, так как я получаю новый UA, когда открывается браузер, и я получаю отсканированную страницу, так как я все еще не обнаружен.

Таким образом, каждый UserAgent дает мне 1 страницу для очистки, а затем он обнаруживается и сжигается.

Изучение здесь немного заставило меня изменить "call_function.js":

function getPageCache(opt_doc, opt_w3c) {
  var doc = opt_doc || document;
  var w3c = opt_w3c || false;
  //var key = '$cdc_asdjflasutopfhvcZLmcfl_';
  var key = '$newplacetostorecache_';
  if (w3c) {
    if (!(key in doc))
      doc[key] = new CacheWithUUID();
    return doc[key];
  } else {
    if (!(key in doc))
      doc[key] = new Cache();
    return doc[key];
  }
}

Не сработало

Итак, в последний раз я попробовал этот последний метод судного дня:

import time
import string
import random

KEY_LEN = 20

def base_str():
    return (string.ascii_letters+string.digits)
def key_gen():
    keylist = [random.choice(base_str()) for i in range(KEY_LEN)]
    return ("".join(keylist))

for page in range(1,int(last_page),1):
    print(base_url+str(page)+base_search)
    browser.get(base_url+str(page)+base_search)
    grabber()
    option.add_argument('--user-agent=' + key_gen())
    print('user agent updated successfully')

И это сработало!! Этим утром я смог продвинуться примерно на 12 страниц из общего количества около 20 (прежде чем загрузка страницы заняла слишком много времени, и сессия закончилась)

Но пару часов спустя он больше не работал, я снова был обнаружен после захвата первой страницы, только чтобы столкнуться с CAPTCHA 2-й страницы

Есть ли еще какие-то методы, которые я должен определенно попробовать, чтобы наконец-то очистить данные этого сайта?

0 ответов

Другие вопросы по тегам