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

python 利用toapi庫自動(dòng)生成api

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

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

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

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

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

我們來簡單體驗(yàn)一下這個(gè)庫。

安裝

首先安裝。

pip install toapi
pip install cssselect

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

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

現(xiàn)在我們將這個(gè)頁面轉(zhuǎn)化成API,這個(gè)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)

運(yùn)行

python app.py

查看結(jié)果

curl localhost:12306/courses

返回結(jié)果

{
  "Course": [
    {
      "title": "全棧測(cè)試開發(fā)班",
      "url": "/courses/9"
    },
    {
      "title": "性能測(cè)試從入門到精通班",
      "url": "/courses/7"
    },
    {
      "title": "接口自動(dòng)化測(cè)試開發(fā)--Python班",
      "url": "/courses/6"
    },
    {
      "title": "Selenium自動(dòng)化測(cè)試--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使用非常簡單,實(shí)際上就是把a(bǔ)pi的創(chuàng)建和爬蟲結(jié)合起來了
  • toapi提供了比較完備的緩存機(jī)制,非首次訪問的速度會(huì)很快

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

以上就是python 利用toapi庫自動(dòng)生成api的詳細(xì)內(nèi)容,更多關(guān)于python toapi庫自動(dòng)生成api的資料請(qǐng)關(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實(shí)現(xiàn)輪廓的特征值

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新評(píng)論

和林格尔县| 云霄县| 吉木乃县| 建阳市| 平度市| 保康县| 固镇县| 葫芦岛市| 鄂托克旗| 余姚市| 华阴市| 焉耆| 磴口县| 昭觉县| 昭苏县| 东光县| 长汀县| 四会市| 茶陵县| 汤原县| 石渠县| 汉寿县| 内丘县| 萍乡市| 宁都县| 库车县| 嘉定区| 陵川县| 麦盖提县| 高碑店市| 泰宁县| 平陆县| 辽源市| 龙山县| 房山区| 新巴尔虎左旗| 伊吾县| 淮南市| 莱芜市| 深泽县| 普格县|