最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python selenium 獲取接口數(shù)據(jù)的實現(xiàn)

 更新時間:2020年12月07日 14:30:16   作者:CyborgLin  
這篇文章主要介紹了python selenium 獲取接口數(shù)據(jù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

python selenium 獲取接口數(shù)據(jù)。

selenium沒有直接提供查詢的函數(shù),但是可以通過webdriver提供的API查詢,使用的函數(shù)是Network.getResponseBody

webdriver提供的API文檔:https://chromedevtools.github.io/devtools-protocol/tot/Network/

Network.getResponseBody文檔說明:

Network.getResponseBody的參數(shù)是requestid,requestid是webdriver每個請求自動生成的惟一ID,拿到requestid就能拿到請求返回的內(nèi)容。

如何獲取requestid?創(chuàng)建webdriver對象時配置信息設(shè)置獲取performance,即可獲取每個請求的日志信息,然后通過對日志信息的檢索找到對應(yīng)的requestid。

獲取日志信息的webdriver創(chuàng)建代碼(注意,必須傳入配置信息才能獲取日志信息):

from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time
 
caps = {
  'browserName': 'chrome',
  'loggingPrefs': {
    'browser': 'ALL',
    'driver': 'ALL',
    'performance': 'ALL',
  },
  'goog:chromeOptions': {
    'perfLoggingPrefs': {
      'enableNetwork': True,
    },
    'w3c': False, 
  },
}
driver = webdriver.Chrome(desired_capabilities=caps)
 
driver.get('https://partner.oceanengine.com/union/media/login/')
# 必須等待一定的時間,不然會報錯提示獲取不到日志信息,因為絮叨等所有請求結(jié)束才能獲取日志信息
time.sleep(3)
 
request_log = driver.get_log('performance')

打印request_log是一個數(shù)組,然后遍歷request_log檢索需要獲取的url對應(yīng)的requestid,比如需要獲取https://s3.pstatp.com/bytecom/resource/union_web2/media/manifest.json對應(yīng)的requestid,并且獲取接口內(nèi)容:

for i in range(len(request_log)):
  message = json.loads(request_log[i]['message'])
  message = message['message']['params']
  # .get() 方式獲取是了避免字段不存在時報錯
  request = message.get('request')
  if(request is None):
    continue
 
  url = request.get('url')
  if(url == "https://s3.pstatp.com/bytecom/resource/union_web2/media/manifest.json"):
    # 得到requestId
    print(message['requestId'])
    # 通過requestId獲取接口內(nèi)容
    content = driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': message['requestId']})
    print(content)
    break

完整代碼:

import json
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time
 
caps = {
  'browserName': 'chrome',
  'loggingPrefs': {
    'browser': 'ALL',
    'driver': 'ALL',
    'performance': 'ALL',
  },
  'goog:chromeOptions': {
    'perfLoggingPrefs': {
      'enableNetwork': True,
    },
    'w3c': False, 
  },
}
driver = webdriver.Chrome(desired_capabilities=caps)
 
driver.get('https://partner.oceanengine.com/union/media/login/')
# 必須等待一定的時間,不然會報錯提示獲取不到日志信息,因為絮叨等所有請求結(jié)束才能獲取日志信息
time.sleep(3)
 
request_log = driver.get_log('performance')
print(request_log)
 
for i in range(len(request_log)):
  message = json.loads(request_log[i]['message'])
  message = message['message']['params']
  # .get() 方式獲取是了避免字段不存在時報錯
  request = message.get('request')
  if(request is None):
    continue
 
  url = request.get('url')
  if(url == "https://s3.pstatp.com/bytecom/resource/union_web2/media/manifest.json"):
    # 得到requestId
    print(message['requestId'])
    # 通過requestId獲取接口內(nèi)容
    content = driver.execute_cdp_cmd('Network.getResponseBody', {'requestId': message['requestId']})
    print(content)
    break

到此這篇關(guān)于python selenium 獲取接口數(shù)據(jù)的實現(xiàn)的文章就介紹到這了,更多相關(guān)python selenium 獲取接口數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • jupyter notebook運行代碼沒反應(yīng)且in[ ]沒有*

    jupyter notebook運行代碼沒反應(yīng)且in[ ]沒有*

    本文主要介紹了jupyter notebook運行代碼沒反應(yīng)且in[ ]沒有*,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 詳解python-docx處理Word必備工具

    詳解python-docx處理Word必備工具

    這篇文章主要介紹了python-docx處理Word必備工具,我主要講講自己用到的幾個內(nèi)容是怎么設(shè)置的,對python-docx處理Word的相關(guān)知識感興趣的朋友一起看看吧
    2021-10-10
  • python中正則表達式的使用詳解

    python中正則表達式的使用詳解

    這篇文章主要介紹了python中正則表達式的使用詳解,另附上一些常用的Python正則例子,有需要的朋友可以參考下
    2014-10-10
  • Django細致講解多對多使用through自定義中間表方法

    Django細致講解多對多使用through自定義中間表方法

    我們在開發(fā)網(wǎng)站的時候,無可避免的需要設(shè)計實現(xiàn)網(wǎng)站的用戶系統(tǒng),我們需要實現(xiàn)包括用戶注冊、用戶登錄、用戶認證、注銷等功能,Django作為完美主義終極框架,它默認使用auth_user表來存儲用戶數(shù)據(jù),下面我們來看看Django多對多使用through自定義中間表
    2022-06-06
  • Python通過調(diào)用mysql存儲過程實現(xiàn)更新數(shù)據(jù)功能示例

    Python通過調(diào)用mysql存儲過程實現(xiàn)更新數(shù)據(jù)功能示例

    這篇文章主要介紹了Python通過調(diào)用mysql存儲過程實現(xiàn)更新數(shù)據(jù)功能,結(jié)合實例形式分析了Python調(diào)用mysql存儲過程實現(xiàn)更新數(shù)據(jù)的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • python基于tkinter實現(xiàn)gif錄屏功能

    python基于tkinter實現(xiàn)gif錄屏功能

    一直在思索實現(xiàn)一個透明的窗體,然后可以基于這個窗體可以開發(fā)出各種好玩的應(yīng)用,這一期,我們將實現(xiàn)有趣的GIF錄屏功能
    2021-05-05
  • 使用Python實現(xiàn)MP3格式轉(zhuǎn)化

    使用Python實現(xiàn)MP3格式轉(zhuǎn)化

    這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)MP3格式轉(zhuǎn)化為wav,flac和ogg等,文中的示例代碼講解詳細,有需要的小伙伴可以參考一下
    2025-01-01
  • Python Websocket服務(wù)端通信的使用示例

    Python Websocket服務(wù)端通信的使用示例

    這篇文章主要介紹了Python Websocket服務(wù)端通信的使用示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-02-02
  • 教你如何將 Sublime 3 打造成 Python/Django IDE開發(fā)利器

    教你如何將 Sublime 3 打造成 Python/Django IDE開發(fā)利器

    Sublime Text 是一款非常強大的文本編輯器, 下面我們介紹如何將 Sublime Text 3 打造成一款 Python/Django 開發(fā)利器:
    2014-07-07
  • django formset實現(xiàn)數(shù)據(jù)表的批量操作的示例代碼

    django formset實現(xiàn)數(shù)據(jù)表的批量操作的示例代碼

    這篇文章主要介紹了django-formset實現(xiàn)數(shù)據(jù)表的批量操作的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12

最新評論

新巴尔虎右旗| 丰都县| 靖江市| 牟定县| 罗甸县| 仙居县| 锡林浩特市| 如皋市| 宜宾县| 凯里市| 宁明县| 肥城市| 肥城市| 湘潭市| 微博| 柞水县| 宾阳县| 沛县| 金溪县| 台南县| 吉首市| 镇赉县| 井冈山市| 天峻县| 左权县| 岱山县| 安西县| 吴旗县| 墨玉县| 舟曲县| 双鸭山市| 东源县| 灌云县| 津南区| 防城港市| 云霄县| 唐河县| 永嘉县| 会东县| 苏尼特右旗| 巴林右旗|