selenium登陸12306,requests抓取數據

  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)
相關文章
相關標籤/搜索