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

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

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

簡(jiǎn)述

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

原理

創(chuàng)建django項(xiàng)目,做好基礎(chǔ)的配置,在views里寫兩個(gè)方法,一個(gè)是從mysql數(shù)據(jù)庫(kù)中查數(shù)據(jù)然后封裝成API,一個(gè)是爬蟲方法,數(shù)據(jù)扒下來以后,通過django的ORM把數(shù)據(jù)插入到mysql數(shù)據(jù)庫(kù)中。
這里的路由也是對(duì)應(yīng)兩個(gè),一個(gè)是爬蟲的請(qǐng)求路由(就是運(yùn)行路由),一個(gè)是接口路由,MODEL層里也是為了方便,就設(shè)了兩個(gè)字段,一個(gè)是歌曲名稱,一個(gè)是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標(biāo)簽內(nèi)容
    music_id = music_id_all.split('=')[-1] # 將a標(biāo)簽內(nèi)容進(jìn)行數(shù)據(jù)清洗,提取歌曲的id
    download_music = music_name + ' ' + f'http://music.163.com/song/media/outer/url?id={music_id}.mp3' # 將歌曲名稱和url進(jìn)行拼接
    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

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

以上就是python基于爬蟲+django,打造個(gè)性化API接口的詳細(xì)內(nèi)容,更多關(guān)于python api接口的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

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

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

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

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

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

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

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

    Pandas數(shù)據(jù)結(jié)構(gòu)中Series屬性詳解

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

    python 排序算法總結(jié)及實(shí)例詳解

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

    深入理解Python虛擬機(jī)中的Code?obejct

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

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

    這篇文章主要介紹了python實(shí)現(xiàn)整數(shù)序列求和,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python面向?qū)ο竽Хǚ椒ê蛦卫K代碼實(shí)例

    Python面向?qū)ο竽Хǚ椒ê蛦卫K代碼實(shí)例

    這篇文章主要介紹了Python面向?qū)ο竽Хǚ椒ê蛦卫K代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • 在Python的一段程序中如何使用多次事件循環(huán)詳解

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

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

最新評(píng)論

塔城市| 麻城市| 雅安市| 习水县| 东城区| 宁蒗| 长治县| 香河县| 黄骅市| 依安县| 平谷区| 普安县| 兰考县| 通城县| 新泰市| 高邮市| 神池县| 施甸县| 仪陇县| 兴和县| 南宫市| 曲麻莱县| 萨嘎县| 自贡市| 淮南市| 馆陶县| 上思县| 湾仔区| 灵川县| 房产| 石台县| 宕昌县| 微山县| 汉源县| 连山| 江门市| 定结县| 淮北市| 柳江县| 博客| 乌兰浩特市|