日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Python第三方库使用——splinter

發(fā)布時間:2023/12/4 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 Python第三方库使用——splinter 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

功能:實現(xiàn)與html標簽的交互,例如用編程的方式實現(xiàn)對頁面中某一按鍵的點擊,實現(xiàn)對文本框的填寫。

準備

  • 安裝

    pip install splinter
  • 下載瀏覽器(推薦使用chrome)驅動(默認調用的是 firefox)

    請點擊如下網(wǎng)站下載與自己操作系統(tǒng)相匹配的驅動程序。

    http://chromedriver.storage.googleapis.com/index.html?path=2.20/

基本用法

如想獲得直觀的演示效果,推薦使用ipython,實現(xiàn)一種交互式的命令響應。

>>> from splinter.browser import Browser

獲得網(wǎng)頁的“句柄”

>>> b = Browser(driver_name='chrome')# 此時會打開chrome瀏覽器,# b這個Browser對象會持有后續(xù)操作的頁面# 可將其理解為頁面的句柄# 也即通過操縱b來實現(xiàn)對頁面的操縱

訪問某一站點

>>> url='https://www.baidu.com'
>>> b.visit(url)# 會在瀏覽器中打開百度首頁# 是不是很神奇,通過代碼的方式實現(xiàn)以前手動完成的事# 更神奇的還在后面

使用百度進行關鍵字的檢索

為避免中英文編碼方式的影響,這里我們統(tǒng)一使用頁面標簽的id屬性而非text屬性。

如,我們按如下的方式獲取百度輸入框的name屬性值。

>>> b.fill('wd', 'splinter')

我們可以獲得百度一下所標示的按鈕,然后通過代碼的方式實現(xiàn)對該按鈕的點擊。

>>> btn = b.find_by_id('kw')
>>> btn.click()

或者連寫:

>>> b.find_by_id('kw').click()

注,因為當前百度搜索填寫關鍵字會觸發(fā)搜索結果的顯示,所以這項演示似乎看起來click和不click影響不大。

雜項

# 判斷頁面是否存在
>>> b.is_text_present('splinter.cobrateam.info')
True# 退出
>>> b.quit()

一個實例

我們通過如下簡單的代碼實現(xiàn)對12306網(wǎng)站的相關標簽的設置(以代碼的形式操縱而非手動):

登錄

>>> from splinter.browser import Browser
>>> url = 'https://kyfw.12306.cn/otn/leftTicket/init'
>>> b = Browser(driver_name='chrome')
>>> b.visit(url)>>> b.find_by_id('login_user').click()# 點擊登錄按鈕
>>> b.fill('loginUserDTO.user_name', '****@qq.com')                     
>>> b.fill('userDTO.password', '****')# 無奈,此時并不能通過簡單的設置繞過驗證碼

以cookie的形式設置始發(fā)站、終點站以及日期

>>> b.cookie.all()# 顯示當前cookie,并無站點實現(xiàn)信息
2
3
4
{u'BIGipServerotn': u'1977155850.38945.0000',u'JSESSIONID': u'0A01D97598F459F751C4AE8518DBFB300DA7001B67',u'__NRF': u'95D48FC2E0E15920BFB61C7A330FF2AE',u'current_captcha_type': u'Z'}
# 然后我們填寫出發(fā)站,以下信息均需自己事先填寫
>>> b.cookies.add({"_jc_save_fromStation":"%u4E0A%u6D77%2CSHH"})# 添加目的地
>>> b.cookies.add({u'_jc_save_toStation':'%u6C38%u5DDE%2CAOQ'})# 添加出發(fā)日期
>>> b.cookies.add({"_jc_save_fromDate":"2016-01-23"})# 注,如果需要對相關信息進行修改的話,調用的是add方法,這和字典的操作相兼容
>>> b.cookies.add({u'_jc_save_toStation':'xxxxxx'})
>>> b.cookies.all()
{u'BIGipServerotn': u'1977155850.38945.0000',u'JSESSIONID': u'0A01D97598F459F751C4AE8518DBFB300DA7001B67',u'__NRF': u'95D48FC2E0E15920BFB61C7A330FF2AE',u'_jc_save_fromDate': u'2016-01-20',u'_jc_save_fromStation': u'%u4E0A%u6D77%2CSHH',u'_jc_save_toStation': u'%u6C38%u5DDE%2CAOQ',u'current_captcha_type': u'Z'}

cookie準備完畢,reload然后開始查詢:

>>> b.reload()
>>> 

總結

以上是生活随笔為你收集整理的Python第三方库使用——splinter的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。