久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

        手機(jī)站
        千鋒教育

        千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

        千鋒教育

        掃一掃進(jìn)入千鋒手機(jī)站

        領(lǐng)取全套視頻
        千鋒教育

        關(guān)注千鋒學(xué)習(xí)站小程序
        隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

        當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 如何抓取 API 接口中的數(shù)據(jù)

        如何抓取 API 接口中的數(shù)據(jù)

        來(lái)源:千鋒教育
        發(fā)布人:千鋒
        時(shí)間: 2023-12-28 18:12:00 1703758320

        一、API接口概述

        今天我們來(lái)講一種更快捷的獲取數(shù)據(jù)的方式,通過(guò)API數(shù)據(jù)接口抓取數(shù)據(jù)。

        API接口是負(fù)責(zé)傳遞數(shù)據(jù)的,在現(xiàn)今已存在的網(wǎng)站中,除了極個(gè)別非常古老的網(wǎng)站,大部分的網(wǎng)站都會(huì)采用API進(jìn)行數(shù)據(jù)的傳輸。那么為什么API接口這么受歡迎呢,那當(dāng)然是其帶來(lái)了很多的好處,最直觀的便是節(jié)省了開(kāi)發(fā)的大量時(shí)間、大量金錢(qián)。舉個(gè)例子:一個(gè)編程團(tuán)隊(duì)想制作一個(gè)游戲,在這個(gè)游戲里有付費(fèi)的功能,那么就需要有一個(gè)支付的平臺(tái),而眾所周知,支付平臺(tái)是需要有很大能力去保證安全且需要一定的資金還有資質(zhì)的,普通的團(tuán)隊(duì)壓根搞不起啊,所以,這個(gè)團(tuán)隊(duì),就需要用到“API接口”,他可以接入其他的支付平臺(tái)API接口實(shí)現(xiàn)支付功能,這樣就省去了很多的麻煩。所以,不例外的我們要獲取的數(shù)據(jù)也是可以通過(guò)API接口傳遞到頁(yè)面中的,那么如何利用好API接口,這便是我們要學(xué)習(xí)的了。

        二、API接口結(jié)構(gòu)

        API接口長(zhǎng)什么樣子呢,請(qǐng)繼續(xù)看:

        https://v.api.aa1.cn/api/api-qq-gj/index.php?qq=xxxxx&num=xx&vip=x

        上方這個(gè)URL便是一個(gè)API接口,它是由請(qǐng)求地址和請(qǐng)求參數(shù)兩部分構(gòu)成的,請(qǐng)求地址和請(qǐng)求參數(shù)之間使用?連接,請(qǐng)求參數(shù)要寫(xiě)成key=value的形式(我們常說(shuō)的鍵值對(duì)),如果同時(shí)有多個(gè)請(qǐng)求參數(shù),請(qǐng)求參數(shù)之前使用&連接。

        請(qǐng)求地址,顧名思義就是你請(qǐng)求的服務(wù)器的入口;請(qǐng)求參數(shù),就是按照設(shè)定你得告訴服務(wù)器你要做什么。相信大家也嘗試打開(kāi)這個(gè)鏈接了,結(jié)果發(fā)現(xiàn)什么也沒(méi)有,那是因?yàn)檫@個(gè)API的請(qǐng)求參數(shù)設(shè)定不正確。

        這是一個(gè)QQ價(jià)格評(píng)估接口,這是它需要的參數(shù)信息以及返回結(jié)果信息:

        我們只需要按照上圖的信息稍微修改下,便能得到想要的信息。

        https://v.api.aa1.cn/api/api-qq-gj/index.php?qq=1766*****6&num=68&vip=1

        這便是我的QQ的評(píng)估價(jià)格

        那么API接口的數(shù)據(jù)如何被爬蟲(chóng)獲取到呢?

        三、requests請(qǐng)求API

        API接口的請(qǐng)求就是簡(jiǎn)單的requests代碼的編寫(xiě),一定注意要把API寫(xiě)對(duì)。

        從前文講requests到現(xiàn)在講爬取接口,我們一直使用的是get請(qǐng)求方式,后續(xù)會(huì)單獨(dú)講一次post請(qǐng)求。另外,一般爬取開(kāi)放的API不需要對(duì)爬蟲(chóng)添加偽裝,但是如果是爬取某些大型網(wǎng)站的API接口,可能會(huì)需要傳遞你登錄這個(gè)網(wǎng)站的賬號(hào)密碼、headers等參數(shù)。

        import requests

        API_URL = 'https://v.api.aa1.cn/api/api-qq-gj/index.php?qq=1766*****706&num=68&vip=1'
        response = requests.get(url=API_URL)
        result = response.text if response.status_code == 200 else '{}'
        print(result)

        上方代碼執(zhí)行后結(jié)果是這樣的:

        {"code":"1","qq":"176***5706","money": "112","dengji":"68級(jí) ","vip":"非會(huì)員"}

        大家看到這個(gè)結(jié)果感覺(jué)很熟悉,像Python中的字典,但不完全是。API接口中的數(shù)據(jù)是JSON數(shù)據(jù),被我們拿出來(lái)以后就變成了字符串。但是我們是可以將JSON數(shù)據(jù)轉(zhuǎn)換為Python的字典類(lèi)型的。

        import json

        # 字符串序列化
        data = json.loads(result)
        print(data, type(data))
        # {'code': '1', 'qq': '1766935706', 'money': '112', 'dengji': '68級(jí) ', 'vip': '非會(huì)員'} <class 'dict'>

        # 提取QQ估價(jià)
        print(data['money'])
        # 112

         至此,我們遍能夠拿到API接口中的數(shù)據(jù)了。

        五、在網(wǎng)站中尋找API接口

        在此以今日頭條這個(gè)網(wǎng)站為例。

        jinritoutiao

        正常的邏輯是不是就是使用requests結(jié)合正則表達(dá)式或者BeautifulSoup4進(jìn)行數(shù)據(jù)的爬取,但是我們可以先試著找找有沒(méi)有數(shù)據(jù)接口能夠讓我們更快速的得到數(shù)據(jù)。

        使用快捷鍵F12(有些電腦是Fn + F12)或者直接網(wǎng)頁(yè)中右鍵點(diǎn)擊檢查按鈕打開(kāi)開(kāi)發(fā)者工具,如下圖所示,按照箭頭順序先切換到Network,再點(diǎn)擊Fetch/XHR,再重新刷新下頁(yè)面,就能夠看到紅框中加載出一些資源文件。

        這些資源文件中就有可能存在我們想找的API數(shù)據(jù)接口,不是所有的網(wǎng)站都能找到數(shù)據(jù)接口,有些網(wǎng)站的數(shù)據(jù)接口很隱蔽,正常手段找不到,需要結(jié)合抓包工具才能夠找到,這里我們暫時(shí)先來(lái)講解一般的API接口尋找,后續(xù)單獨(dú)說(shuō)明抓包工具的使用。

        如何判斷哪個(gè)資源文件是我們想要的數(shù)據(jù)接口呢?最簡(jiǎn)單的方法便是一個(gè)個(gè)的看。首先觀察紅框中的這樣幾個(gè)字段:Name、Status、Size、Time。

        Name:文件名,我們依舊是遵循見(jiàn)名知義的原則,通過(guò)文件名猜測(cè)文件對(duì)應(yīng)的數(shù)據(jù)、

        Status:狀態(tài)碼,我們需要的是狀態(tài)碼為200的文件、

        Size:文件大小,數(shù)據(jù)多的資源文件大小都挺大的、

        Time:加載時(shí)間,數(shù)據(jù)多的資源文件加載速度不一定很快。

        當(dāng)你點(diǎn)擊了某個(gè)資源文件,在彈出來(lái)的窗口切換到Preview預(yù)覽選項(xiàng)卡發(fā)現(xiàn)加載出來(lái)的數(shù)據(jù)和頁(yè)面信息大概保持一致時(shí),API數(shù)據(jù)接口就找對(duì)了。此時(shí)便可以復(fù)制它的在線地址,寫(xiě)爬蟲(chóng)代碼去請(qǐng)求這個(gè)接口來(lái)提取數(shù)據(jù)了。

        import requests
        import json

        API_URL = 'https://www.toutiao.com/hot-event/hot-board/?origin=toutiao_pc&_signature=_02B4Z6wo00f01TIgxfQAAIDCpvae--DE-40yBMFAAC9V19pn3J.1AFd.u3TRK0tR1rbObxwJ7qLFJCGXBd0Z35J32hVZFJbsVx4puKKLsSDQInjDwZpK4c6DlvBFgCuz3EkKw6APt9jwKbeG36'
        response = requests.get(url=API_URL)
        result = response.text if response.status_code == 200 else '{}'
        # print(result)
        NewsInfo = json.loads(result)
        for news_dict in NewsInfo['data']:
        newsTitle = news_dict['Title']
        print(newsTitle)

         

        tags:
        聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
        10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
        請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
        免費(fèi)領(lǐng)取
        今日已有369人領(lǐng)取成功
        劉同學(xué) 138****2860 剛剛成功領(lǐng)取
        王同學(xué) 131****2015 剛剛成功領(lǐng)取
        張同學(xué) 133****4652 剛剛成功領(lǐng)取
        李同學(xué) 135****8607 剛剛成功領(lǐng)取
        楊同學(xué) 132****5667 剛剛成功領(lǐng)取
        岳同學(xué) 134****6652 剛剛成功領(lǐng)取
        梁同學(xué) 157****2950 剛剛成功領(lǐng)取
        劉同學(xué) 189****1015 剛剛成功領(lǐng)取
        張同學(xué) 155****4678 剛剛成功領(lǐng)取
        鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
        董同學(xué) 138****2867 剛剛成功領(lǐng)取
        周同學(xué) 136****3602 剛剛成功領(lǐng)取
        相關(guān)推薦HOT
        最小二乘法(Least Squares)

        一、最小二乘法概念與用途知悉最小二乘法是一種常用的數(shù)學(xué)方法,用于通過(guò)擬合數(shù)據(jù)點(diǎn)來(lái)找到最佳擬合曲線或平面。其核心思想是最小化觀測(cè)數(shù)據(jù)點(diǎn)與...詳情>>

        2023-12-28 18:23:03
        如何抓取 API 接口中的數(shù)據(jù)

        一、API接口概述今天我們來(lái)講一種更快捷的獲取數(shù)據(jù)的方式,通過(guò)API數(shù)據(jù)接口抓取數(shù)據(jù)。API接口是負(fù)責(zé)傳遞數(shù)據(jù)的,在現(xiàn)今已存在的網(wǎng)站中,除了極...詳情>>

        2023-12-28 18:12:00
        Web應(yīng)用程序安全:如何確保數(shù)據(jù)安全?

        Web應(yīng)用程序安全:如何確保數(shù)據(jù)安全?Web應(yīng)用程序已經(jīng)成為現(xiàn)代互聯(lián)網(wǎng)的核心部分。Web應(yīng)用程序的發(fā)展和演化使得用戶可以通過(guò)連接到數(shù)據(jù)和信息資...詳情>>

        2023-12-28 00:53:09
        5種常見(jiàn)的網(wǎng)絡(luò)安全威脅,以及如何應(yīng)對(duì)!

        網(wǎng)絡(luò)安全問(wèn)題越來(lái)越嚴(yán)重,惡意攻擊和黑客入侵事件頻繁發(fā)生。針對(duì)不同類(lèi)型的網(wǎng)絡(luò)安全威脅和攻擊手段,我們需要采取不同的安全措施。本文將介紹5...詳情>>

        2023-12-28 00:47:53
        確保個(gè)人設(shè)備安全:關(guān)于反病毒軟件的一切

        確保個(gè)人設(shè)備安全:關(guān)于反病毒軟件的一切隨著互聯(lián)網(wǎng)的普及,個(gè)人設(shè)備的安全問(wèn)題日益凸顯。惡意軟件、病毒、木馬、蠕蟲(chóng)等威脅,輕則影響設(shè)備運(yùn)行...詳情>>

        2023-12-28 00:44:21
        快速通道
        鹤峰县| 肥乡县| 鲁山县| 灵武市| 嫩江县| 怀来县| 东乡| 康平县| 贵溪市| 凯里市| 东城区| 邳州市| 弋阳县| 鄢陵县| 吉林省| 阳曲县| 佛教| 利辛县| 通化县| 左权县| 黔南| 浠水县| 漯河市| 庄河市| 玉田县| 鹤庆县| 日喀则市| 高唐县| 德庆县| 即墨市| 荆州市| 环江| 文水县| 祥云县| 福州市| 灵丘县| 杨浦区| 从江县| 凭祥市| 三明市| 余庆县|