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)