selenium登陆12306,requests抓取数据:html
import selenium import selenium.webdriver import selenium.webdriver.common.keys from selenium.webdriver.common.action_chains import ActionChains import requests import lxml import lxml.etree import time #登陆12306须要点击验证码 ,会话前时间长一点 driver = selenium.webdriver.Firefox() driver.get("https://kyfw.12306.cn/otn/resources/login.html") time.sleep(3) #切换到帐户登陆 elem=driver.find_element_by_xpath("/html/body/div[2]/div[2]/ul/li[2]/a") #点到帐户登陆 time.sleep(3) elem.click() #点击一下 user=driver.find_element_by_id("J-userName") time.sleep(2) password=driver.find_element_by_id("J-password") #login=driver.find_element_by_id("J-login") user.clear() #清理user 由于已经有了,再写会出现问题 password.clear()#清理user password time.sleep(2) user.send_keys("用户名") time.sleep(2) password.send_keys("密码") time.sleep(15) #手动点击验证码 #btn=driver.find_element_by_class_name("btn btn-primary ok").click() #点击肯定 #login.click() #点击一下 登陆 time.sleep(30) # 等待页面加载 时间过短cookie会加载不出来 print("开始会话") req=requests.session() #会话 打开一个网页,直到关闭浏览器以前 都是会话 cookies=driver.get_cookies() #抓取所有的cookie for cookie in cookies: #把cookie加载到自定义的网页中 req.cookies.set(cookie['name'],cookie['value']) #把cookie加载到req中 req.headers.clear() #清空头 newpage=req.get("https://kyfw.12306.cn/otn/view/information.html",verify=False) #我的信息网址 time.sleep(5) #btn=driver.find_element_by_class_name("btn btn-primary ok").click() #点击肯定 print("会话完成") time.sleep(5) print(newpage.text) #页面 time.sleep(20)