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

python基于爬蟲+django,打造個性化API接口

 更新時間:2021年01月21日 16:20:43   作者:mushroom27  
這篇文章主要介紹了python基于爬蟲+django,打造個性化API接口的方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下

簡述

今天也是同事在做微信小程序的開發(fā),需要音樂接口的測試,可是用網易云的開放接口比較麻煩,也不能進行測試,這里也是和我說了一下,所以就用爬蟲寫了個簡單網易云歌曲URL的爬蟲,把數(shù)據(jù)存入mysql數(shù)據(jù)庫,再利用django封裝裝了一個簡單的API接口,給同事測試使用。

原理

創(chuàng)建django項目,做好基礎的配置,在views里寫兩個方法,一個是從mysql數(shù)據(jù)庫中查數(shù)據(jù)然后封裝成API,一個是爬蟲方法,數(shù)據(jù)扒下來以后,通過django的ORM把數(shù)據(jù)插入到mysql數(shù)據(jù)庫中。
這里的路由也是對應兩個,一個是爬蟲的請求路由(就是運行路由),一個是接口路由,MODEL層里也是為了方便,就設了兩個字段,一個是歌曲名稱,一個是URL地址。

代碼如下

views文件代碼

from django.shortcuts import render,HttpResponse
import requests
from lxml import etree
from .models import Api
# Create your views here.
def api_wy(request):
  api = Api.objects.all()
  return render(request, "index.html",locals())

def pc(request):
  url = 'https://music.163.com/discover/toplist?id=3779629'
  headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.25 Safari/537.36 Core/1.70.3861.400 QQBrowser/10.7.4313.400'
  }
  data = requests.get(url=url, headers=headers)
  html = etree.HTML(data.text)
  music_list = html.xpath('//ul[@class="f-hide"]/li/a')

  music_lis = [] # 存放歌曲信息
  for music in music_list:
    music_name = music.xpath('./text()')[0] # 獲取歌曲名稱
    music_id_all = music.xpath('./@href')[0] # 獲取a標簽內容
    music_id = music_id_all.split('=')[-1] # 將a標簽內容進行數(shù)據(jù)清洗,提取歌曲的id
    download_music = music_name + ' ' + f'http://music.163.com/song/media/outer/url?id={music_id}.mp3' # 將歌曲名稱和url進行拼接
    music_lis.append(download_music)
    print(download_music)

  for url in music_lis:
    try:
      url_name = url.split(' ')[0] # 獲取名稱
      url_music = url.split(' ')[1] # 獲取url
      Api.objects.create(name=url_name,url=url_music)
      print("正在插入數(shù)據(jù)")
    except:
      print("charushibai")
  return HttpResponse("正在下載")

URL路由文件

from django.contrib import admin
from django.urls import path
from api.views import api_wy,pc

urlpatterns = [
  path('admin/', admin.site.urls),
  path('api/',api_wy),
  path("pc/",pc),
]

Models層面

from django.db import models

# Create your models here.
class Api(models.Model):
  name = models.CharField('歌曲名稱', max_length=100)
  url = models.CharField("歌曲地址",max_length=300)

  class Meta:
    verbose_name = '歌曲API'
    verbose_name_plural = verbose_name

  def __str__(self):
    return self.name

其他的也就沒什么可說的了,也是一個比較簡單的測試需求,就是為了省點事情才弄得
好了,今天就到這了,拜拜

以上就是python基于爬蟲+django,打造個性化API接口的詳細內容,更多關于python api接口的資料請關注腳本之家其它相關文章!

相關文章

  • Python實踐之使用Pandas進行數(shù)據(jù)分析

    Python實踐之使用Pandas進行數(shù)據(jù)分析

    在數(shù)據(jù)分析領域,Python的Pandas庫是一個非常強大的工具。這篇文章將為大家詳細介紹如何使用Pandas進行數(shù)據(jù)分析,希望對大家有所幫助
    2023-04-04
  • 使用Pyhton 分析酒店針孔攝像頭

    使用Pyhton 分析酒店針孔攝像頭

    這篇文章主要介紹了使用Pyhton 分析酒店針孔攝像頭,本文通過截圖的形式給大家介紹的非常詳細,對大家的工作或學習具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Python函數(shù)中定義參數(shù)的四種方式

    Python函數(shù)中定義參數(shù)的四種方式

    有些時候看到函數(shù)傳參數(shù)的時候參數(shù)前面加一個星號*或者兩個星號**,這是什么意思? 下面來總結下
    2014-11-11
  • Python super( )函數(shù)用法總結

    Python super( )函數(shù)用法總結

    今天給大家?guī)淼闹R是關于Python的相關知識,文章圍繞著super( )函數(shù)展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • Pandas數(shù)據(jù)結構中Series屬性詳解

    Pandas數(shù)據(jù)結構中Series屬性詳解

    本文主要介紹了Pandas數(shù)據(jù)結構中Series屬性詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • python 排序算法總結及實例詳解

    python 排序算法總結及實例詳解

    這篇文章主要介紹了python 排序算法總結及實例詳解的相關資料,需要的朋友可以參考下
    2016-09-09
  • 深入理解Python虛擬機中的Code?obejct

    深入理解Python虛擬機中的Code?obejct

    在本篇文章當中主要給大家深入介紹在?cpython?當中非常重要的一個數(shù)據(jù)結構?code?object!?我們簡單介紹了一下在?code?object?當中有哪些字段以及這些字段的簡單含義,在本篇文章當中將會舉一些例子以便更加深入理解這些字段
    2023-04-04
  • python實現(xiàn)整數(shù)序列求和

    python實現(xiàn)整數(shù)序列求和

    這篇文章主要介紹了python實現(xiàn)整數(shù)序列求和,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python面向對象魔法方法和單例模塊代碼實例

    Python面向對象魔法方法和單例模塊代碼實例

    這篇文章主要介紹了Python面向對象魔法方法和單例模塊代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-03-03
  • 在Python的一段程序中如何使用多次事件循環(huán)詳解

    在Python的一段程序中如何使用多次事件循環(huán)詳解

    循環(huán)是我們在日常開發(fā)中是必不可少會遇到的,下面這篇文章主要給大家介紹了關于在Python的一段程序中如何使用多次事件循環(huán)的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-09-09

最新評論

松滋市| 陈巴尔虎旗| 开阳县| 湟中县| 钦州市| 冀州市| 修武县| 玉溪市| 华池县| 阳泉市| 右玉县| 乌兰浩特市| 祁阳县| 湾仔区| 靖州| 栖霞市| 仁化县| 红河县| 高台县| 陇川县| 常德市| 平顶山市| 翁源县| 乾安县| 琼中| 博兴县| 临海市| 吉林省| 英超| 青阳县| 洪洞县| 谢通门县| 温泉县| 信宜市| 永吉县| 青岛市| 石景山区| 富民县| 饶河县| 黄陵县| 平泉县|