最近接触了一些selenium模块的相关知识,觉得还挺有意思的,于是决定亲自尝试写一些爬虫程序来强化selenium模块(一定要多尝试、多动手、多总结)。本文主要使用python爬虫来模拟登录铁路12306官网。这儿得吐槽一句,铁路12306网站的反爬机制做的还是比较好。特别是12306的验证码很是令人很头疼的事,有时候自己去验证都不一定能通过。接下来就使用selenium模块解决验证码。
实现过程
首先通过selenium创建一个浏览器,并通过向页面嵌入js代码去掉webdriver控件(我前面有讲过,不懂的大神们可以去看我写的文章)如果不嵌入js代码就会被webdriver控件检测出,不管你怎么滑动滑块都是失败的。
# 绕过window.navigator.webdriver控件检测
option = Options()
option.add_experimental_option('excludeSwitches', ['enable-automation'])
option.add_argument('--disable-blink-features=AutomationControlled')
driver = webdriver.Chrome(options=option)
driver.maximize_window()
# 切换到账号密码登录窗口
driver.get('https://kyfw.12306.cn/otn/resources/login.html')
time.sleep(3)
driver.find_element_by_xpath('/html/body/div[2]/div[2]/ul/li[2]/a').click()
time.sleep(2)
嵌入js代码这样就不会被12306检测到是使用selenium自动化登录了。
我们先解决最难的验证码。为了实现自动化登录我们使用超级鹰打码平台。
- 注册并登录超级鹰账号:点击链接进行注册https://www.chaojiying.com/user/login/ÿ