我用selenium库在python中制作了自己的Nike SNKRS Bot,它将在Chrome浏览器中工作。我选择了一个流行的webdriver来使用selenium来管理它。我被粘在耐克的登录页面上了。
这是我的代码:
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.proxy import Proxy, ProxyType
from random_user_agent.user_agent import UserAgent
from selenium.common.exceptions import TimeoutException, WebDriverException
from random_user_agent.params import SoftwareName, OperatingSystem
import traceback
options = Options()
options.add_argument("--start-maximized")
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument('--lang=en')
options.add_experimental_option('useAutomationExtension', False)
user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36'
options.add_argument('user-agent={0}'.format(user_agent))
options.add_argument("--disable-gpu")
options.add_argument("--window-size=1420,1080")
service=Service('C:\\chromedriver_win32\\chromedriver.exe')
driver = webdriver.Chrome(options=options,service=service)
driver.delete_all_cookies()
driver.execute_script('return navigator.webdriver')
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36"})
driver.get('https://www.nike.com')
def send_keys_delay(controller,keys,delay=1):
controller.click()
for key in keys:
controller.send_keys(key)
time.sleep(delay)
controller.send_keys(Keys.RETURN)
try:
elem=WebDriverWait(driver,5).until(
ec.presence_of_element_located((By.ID,"hf_cookie_text_cookieAccept"))
)
print(elem.text)
elem.click()
except:
traceback.print_exc()
driver.quit()
time.sleep(3)
try:
elem=driver.find_element(By.ID,"hf_title_signin_membership")
elem.click()
except Exception:
traceback.print_exc()
driver.quit()
try:
elem=WebDriverWait(driver,5).until(
ec.element_to_be_clickable((By.ID,"username")))
email="myemail@gmail.com"
send_keys_delay(elem,email)
except Exception:
traceback.print_exc()
driver.quit()毕竟,屏幕上会出现错误消息。此错误指与服务器的通信。错误信息是:
来自服务器的
错误解析响应。
我敢肯定耐克会发现我的程序是机器人,我不能再往前走了。
我的问题是:使用selenium可以让它工作吗?或者我应该尝试不同的东西?
发布于 2022-11-13 11:39:38
对于其他你可以使用的平台,你可以尝试傀儡,它和selenium非常相似,他们有一个隐形插件来避免被发现,还有一个2 2captcha插件,在其中你链接2 2captcha帐户来解决captchas,以进一步避免检测。
https://stackoverflow.com/questions/74415045
复制相似问题