Python超强爬虫8天速成(完整版)爬取各种网站数据实战案例

12306模拟登陆已改为滑动验证,下面是个人手写代码,可借鉴下🌹
from time import sleep from selenium import webdriver from selenium.webdriver import ActionChains # 导入动作链对应的类 from selenium.webdriver import ChromeOptions # 实现selenium反爬规避 if __name__ == "__main__": # 实现规避(主要规避代码) option = ChromeOptions() option.add_argument("--disable-blink-features=AutomationControlled") option.add_experimental_option('excludeSwitches', ['enable-automation']) bro = webdriver.Chrome('./chromedriver.exe',options=option) bro.get('https://kyfw.12306.cn/otn/resources/login.html') # 选中密码登录并点击 account = bro.find_element('id','J-userName') account.send_keys('Elmous') sleep(2) # passwd = bro.find_element('id','J-password') passwd.send_keys('xykzxh1314') sleep(2) # 选中登陆按钮并点击 btn = bro.find_element('id','J-login') btn.click() sleep(3) while True: try: # 动作链 span = bro.find_element('xpath','//*[@id="nc_1_n1z"]') actions = ActionChains(bro) # 行为链实例化 sleep(2) # 等待2秒钟 # 经截图测量,滑块需要滑过的距离为300像素 actions.click_and_hold(span).move_by_offset(300, 0).perform() # 滑动 actions.release(); sleep(2); a = bro.find_element('id',"nc_1_refresh1"); # 查找刷新按钮,如果没有说明登录成功,执行except跳出循环 a.click(); # 如果刚刚滑动失败,则点击刷新,重新滑动 except Exception as e: print(e); break; sleep(2) bro.quit()