麻豆黑色丝袜jk制服福利网站-麻豆精品传媒视频观看-麻豆精品传媒一二三区在线视频-麻豆精选传媒4区2021-在线视频99-在线视频a

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

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

千鋒教育

掃一掃進入千鋒手機站

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

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

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

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

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

一、API接口概述

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

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

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

API接口長什么樣子呢,請繼續(xù)看:

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

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

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

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

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

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

這便是我的QQ的評估價格

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

三、requests請求API

API接口的請求就是簡單的requests代碼的編寫,一定注意要把API寫對。

從前文講requests到現(xiàn)在講爬取接口,我們一直使用的是get請求方式,后續(xù)會單獨講一次post請求。另外,一般爬取開放的API不需要對爬蟲添加偽裝,但是如果是爬取某些大型網(wǎng)站的API接口,可能會需要傳遞你登錄這個網(wǎng)站的賬號密碼、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級 ","vip":"非會員"}

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

import json

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

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

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

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

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

jinritoutiao

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

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

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

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

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

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

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

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

當(dāng)你點擊了某個資源文件,在彈出來的窗口切換到Preview預(yù)覽選項卡發(fā)現(xiàn)加載出來的數(shù)據(jù)和頁面信息大概保持一致時,API數(shù)據(jù)接口就找對了。此時便可以復(fù)制它的在線地址,寫爬蟲代碼去請求這個接口來提取數(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)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(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é)方法,用于通過擬合數(shù)據(jù)點來找到最佳擬合曲線或平面。其核心思想是最小化觀測數(shù)據(jù)點與...詳情>>

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

一、API接口概述今天我們來講一種更快捷的獲取數(shù)據(jù)的方式,通過API數(shù)據(jù)接口抓取數(shù)據(jù)。API接口是負責(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ā)展和演化使得用戶可以通過連接到數(shù)據(jù)和信息資...詳情>>

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

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

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

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

2023-12-28 00:44:21
主站蜘蛛池模板: 波多野结衣教师系列5| 韩国护士hd高清xxxx| 露脸国语对白视频| 女人扒开| 欧美妇乱xxxxx视频| 又大又硬又黄又刺激的免费视频| 正在播放国产美人| 鸥美一级黄色片| 午夜视频免费成人| 国产一级αv片免费观看| 丰满的奶水边做边喷| 处处吻动漫高清在线观看 | 男人的j进入女人的p的动态图| 国产乱了真实在线观看| 天天天天做夜夜夜做| 麻豆影片| 妖精视频网址| 国产成人综合久久亚洲精品| 国产99视频精品免视看7| 亚洲人人在线| 最近2019免费中文字幕视频三 | 国产福利1000| 精品国产品香蕉在线观看75| 亚洲无人区视频大全| 男女猛烈xx00免费视频试看| 与子乱勾搭对白在线观看| 日本爽爽爽爽爽爽在线观看免| 国产精华av午夜在线观看| 欧美黄三级在线观看| 黑人日皮| 中文字幕热久久久久久久| 水蜜桃视频在线免费观看| 国产福利影院在线观看| а√最新版在线天堂| 又黄又无遮挡| 北条麻妃大战黑人| 国产精品入口麻豆免费| 再深点灬舒服灬太大爽| 污网站在线观看| 精品综合久久久久久98| 黄网站色视频免费观看|