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

python 利用toapi庫自動生成api

 更新時間:2020年10月19日 09:38:38   作者:乙醇  
這篇文章主要介紹了python 利用toapi庫自動生成api,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下

在學(xué)習(xí)做接口測試自動化的時候,我們往往會自己動手寫一些簡單的API,比如寫一個簡單的TODO API之類。

不過自己寫API的時候經(jīng)常需要造一些假數(shù)據(jù),以及處理分頁邏輯,開始的時候還覺得比較有意思,但久而久之就顯得比較乏味了。

這時候你可能會想,有沒有什么工具可以自動將一個線上的網(wǎng)站轉(zhuǎn)化成簡單的API呢?

這樣的工具確實是存在的,而且不少,其中python語言中比較受歡迎的實現(xiàn)是https://github.com/gaojiuli/toapi項目,項目名稱是toapi。

我們來簡單體驗一下這個庫。

安裝

首先安裝。

pip install toapi
pip install cssselect

將重定向科技的課程列表頁轉(zhuǎn)化成API

http://www.itest.info/courses,這是重定向科技的課程列表頁面,里面包含了目前我們所開設(shè)的全部課程。

現(xiàn)在我們將這個頁面轉(zhuǎn)化成API,這個API 返回每門課程的名稱以及url。

from flask import request
from htmlparsing import Attr, Text
from toapi import Api, Item

api = Api()

@api.site('http://www.itest.info')
@api.list('.col-md-3')
@api.route('/courses?page={page}', '/courses')
@api.route('/courses', '/courses')
class Course(Item):
  url = Attr('a', 'href')
  title = Text('h4')

api.run(debug=True, host='0.0.0.0', port=12306)

運行

python app.py

查看結(jié)果

curl localhost:12306/courses

返回結(jié)果

{
  "Course": [
    {
      "title": "全棧測試開發(fā)班",
      "url": "/courses/9"
    },
    {
      "title": "性能測試從入門到精通班",
      "url": "/courses/7"
    },
    {
      "title": "接口自動化測試開發(fā)--Python班",
      "url": "/courses/6"
    },
    {
      "title": "Selenium自動化測試--Python班",
      "url": "/courses/2"
    }
  ]
}

官方例子

將hacknews網(wǎng)站轉(zhuǎn)成API

from flask import request
from htmlparsing import Attr, Text
from toapi import Api, Item

api = Api()


@api.site('https://news.ycombinator.com')
@api.list('.athing')
@api.route('/posts?page={page}', '/news?p={page}')
@api.route('/posts', '/news?p=1')
class Post(Item):
  url = Attr('.storylink', 'href')
  title = Text('.storylink')


@api.site('https://news.ycombinator.com')
@api.route('/posts?page={page}', '/news?p={page}')
@api.route('/posts', '/news?p=1')
class Page(Item):
  next_page = Attr('.morelink', 'href')

  def clean_next_page(self, value):
    return api.convert_string('/' + value, '/news?p={page}', request.host_url.strip('/') + '/posts?page={page}')


api.run(debug=True, host='0.0.0.0', port=5000)

結(jié)果

{
 "Page": {
  "next_page": "http://127.0.0.1:5000/posts?page=2"
 },
 "Post": [
  {
   "title": "Mathematicians Crack the Cursed Curve",
   "url": "https://www.quantamagazine.org/mathematicians-crack-the-cursed-curve-20171207/"
  },
  {
   "title": "Stuffing a Tesla Drivetrain into a 1981 Honda Accord",
   "url": "https://jalopnik.com/this-glorious-madman-stuffed-a-p85-tesla-drivetrain-int-1823461909"
  }
 ]
}

總結(jié)

  • toapi使用非常簡單,實際上就是把api的創(chuàng)建和爬蟲結(jié)合起來了
  • toapi提供了比較完備的緩存機制,非首次訪問的速度會很快

有一定爬蟲能力的測試同學(xué)可以用toapi來實現(xiàn)簡單的mock server,但僅限于get接口

以上就是python 利用toapi庫自動生成api的詳細內(nèi)容,更多關(guān)于python toapi庫自動生成api的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中人臉圖像特征提取方法(HOG、Dlib、CNN)簡述

    Python中人臉圖像特征提取方法(HOG、Dlib、CNN)簡述

    這篇文章主要介紹了Python中人臉圖像特征提取方法(HOG、Dlib、CNN)簡述,需要的朋友可以參考下
    2021-08-08
  • Python集合的基礎(chǔ)操作

    Python集合的基礎(chǔ)操作

    這篇文章主要介紹了Python集合的基礎(chǔ)操作,Python中的集合和數(shù)學(xué)上的集合基本是沒有區(qū)別的,是無序的,即不可以使用索引訪問的,集合中是不能出現(xiàn)重復(fù)元素的。想著情了解具體內(nèi)容的小伙伴可以參考下面文章內(nèi)容
    2021-11-11
  • OpenCV-Python實現(xiàn)輪廓的特征值

    OpenCV-Python實現(xiàn)輪廓的特征值

    輪廓自身的一些屬性特征及輪廓所包圍對象的特征對于描述圖像具有重要意義。本篇博文將介紹幾個輪廓自身的屬性特征及輪廓包圍對象的特征,感興趣的可以了解一下
    2021-06-06
  • Python中的json內(nèi)置庫詳解

    Python中的json內(nèi)置庫詳解

    這篇文章主要介紹了Python中的json內(nèi)置庫詳解,在學(xué)習(xí)做自動化測試的過程中,python 里有一個內(nèi)置的 json 庫,必須要學(xué)習(xí)好,json 是用于存儲和交換數(shù)據(jù)的語法,是一種輕量級的數(shù)據(jù)交換式使用場景,需要的朋友可以參考下
    2023-08-08
  • python使用Flask框架創(chuàng)建一個簡單的動態(tài)日歷效果

    python使用Flask框架創(chuàng)建一個簡單的動態(tài)日歷效果

    這篇文章主要介紹了python使用Flask框架創(chuàng)建一個簡單的動態(tài)日歷,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2024-12-12
  • 基于Python編寫個自用的內(nèi)存清理工具

    基于Python編寫個自用的內(nèi)存清理工具

    自己電腦經(jīng)常內(nèi)存飆升卻不知道是什么進程引起的,但是按傳統(tǒng)辦法點開任務(wù)管理器去排個序來查看太發(fā)麻了,所以本文就來用Python編寫一個內(nèi)存清理工具吧
    2025-02-02
  • 在主機商的共享服務(wù)器上部署Django站點的方法

    在主機商的共享服務(wù)器上部署Django站點的方法

    這篇文章主要介紹了在主機商的共享服務(wù)器上部署Django站點的方法,Django是最具人氣的Python框架,需要的朋友可以參考下
    2015-07-07
  • Python搭建代理IP池實現(xiàn)存儲IP的方法

    Python搭建代理IP池實現(xiàn)存儲IP的方法

    這篇文章主要介紹了Python搭建代理IP池實現(xiàn)存儲IP的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • Python開發(fā)之pip安裝及使用方法詳解

    Python開發(fā)之pip安裝及使用方法詳解

    這篇文章主要介紹了Python開發(fā)之pip安裝及使用方法詳解,需要的朋友可以參考下
    2020-02-02
  • Python機器學(xué)習(xí)庫之Scikit-learn基本用法詳解

    Python機器學(xué)習(xí)庫之Scikit-learn基本用法詳解

    Scikit-learn?是?Python?中最著名的機器學(xué)習(xí)庫之一,它提供了大量實用的機器學(xué)習(xí)算法以及相關(guān)的工具,可以方便我們進行數(shù)據(jù)挖掘和數(shù)據(jù)分析,在這篇文章中,我們將介紹?Scikit-learn?的基本使用,包括如何導(dǎo)入數(shù)據(jù)、預(yù)處理數(shù)據(jù)、選擇和訓(xùn)練模型,以及評估模型的性能
    2023-07-07

最新評論

疏附县| 黄冈市| 秀山| 鞍山市| 额敏县| 三台县| 都江堰市| 青龙| 扎囊县| 吉安市| 郑州市| 柳河县| 峨眉山市| 隆子县| 广东省| 新沂市| 朔州市| 宜宾县| 辽中县| 太仆寺旗| 元江| 汤原县| 夏邑县| 玉树县| 扶绥县| 登封市| 江陵县| 漳州市| 阳东县| 葫芦岛市| 洪江市| 南木林县| 洛隆县| 阿城市| 宜兰市| 湘西| 商丘市| 济源市| 水富县| 东乌珠穆沁旗| 临海市|