我自己的代码,我现在爬取的是淘宝商家后台
def login(self):
"""登录
直接用webdriver.ChromeOptions(), 天猫容易检测,换个方法
pip install undetected_chromedriver
20221128放弃上方该方法
"""
# options = uc.ChromeOptions()
options = webdriver.ChromeOptions()
options.add_argument("--disable-popup-blocking") # 关闭弹窗拦截,不然新页面打不开
options.add_argument('--disable-dev-shm-usage')
options.add_argument('--no-sandbox') # 以最高权限运行
# options.add_argument('--headless')
options.add_argument('--ignore-certificate-errors')
# options.add_argument('blink-settings=imagesEnabled=false') # 禁止加载图片,不加载图片,详情页图片获取不到
# options.add_experimental_option('excludeSwitches', ['enable-automation']) # 关闭 “Chrome 正受到自动测试软件的控制。”
options.add_argument("--disable-blink-features=AutomationControlled") # 就是这一行告诉chrome去掉了webdriver痕迹,令navigator.webdriver=false,极其关键
# 禁用浏览器弹窗 包括不限于提示保存密码的弹窗
prefs = {
'profile.default_content_setting_values': {
'notifications': 2
},
"credentials_enable_service": False,
"profile.password_manager_enabled": False
}
options.add_experimental_option('prefs', prefs)
options.add_argument('disable-infobars') # 隐藏"Chrome正在受到自动软件的控制"
# self.driver = uc.Chrome(options=options, version_main=107)
self.driver = webdriver.Chrome(options=options)
with open('./stealth.min.js') as f:
js = f.read()
self.driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": js
})
# 下方登录, self.driver.implicitly_wait(20)要设置在前边
self.driver.implicitly_wait(20)
time.sleep(1)
# self.driver.get("https://myseller.taobao.com/home.htm#/index")
self.driver.get("https://myseller.taobao.com/home.htm/sell-manage-tm/all?current=1&pageSize=20")
self.driver.maximize_window()
time.sleep(1)
以上代码已经最大限度防止被检测,但是次数多了还是出现滑块验证码,而且人工去点 怎么点都不管用的那种
参考: https://blog.csdn.net/weixin_41712499/article/details/127488038