文末福利 | Python3 网络爬虫:老板,需要特殊服务吗?
文末福利!送書啦!
您若喜歡,給公眾號設置星標,第一時間獲取推送
1
前言
網絡爬蟲,爬天爬地爬空氣。
除了常規的下載文字、圖片、音頻這些,還能干啥?
還能干的有很多,比如一些「多種多樣」的特殊服務。
2
特殊服務
特殊服務,就是那些定制化的 API。
API 的概念也很好理解:
比如你想爬一個網站的數據,你需要分析這個網站,要向哪個 url 發起請求,要向服務器傳遞哪些數據,拿到服務器的返回數據又要怎么解析出想要的數據。
其實,這個過程,就是在「抽象化」出一個 API。
例如,上篇文章的視頻下載實戰。
對于寫好的「視頻下載程序」而言,輸入就是視頻名,輸出就是下載好的視頻文件。
你可以把「視頻下載程序」叫做一個 API,本質上就是一個完成特定任務的接口。
當然,這些所謂的 API,并非網站管理者提供給你的,而是你自己通過寫程序實現的。
這些 API 是需要自己去挖掘,去發現,屬于野生的,可以略帶調侃地稱呼它們為野生 API。
特殊服務,那可就了不得了。
它們不是野生的,而是網站官方提供的官方 API。
這些網站明碼標價,提供著各式各樣的定制化服務。
比如,這是「聚合數據」提供的一些查詢類 API。
這些常規 API 今天不做討論,咱們玩一些好玩的。
只會網絡爬蟲,也能玩轉所謂的人工智能算法。
3
AI 開放平臺
人工智能開放平臺,很多家都有。
比較熟知的,騰訊、百度、京東、Face++ 都提供了 AI 開放平臺。
騰訊 AI 開放平臺:
https://ai.qq.com/
百度 AI 開放平臺:
https://ai.baidu.com/
京東 AI 開放平臺:
http://neuhub.jd.com/
曠視 AI 開放平臺:
https://www.faceplusplus.com.cn/
常見的圖像技術、語音技術、文字識別,這些網站都有提供。
單看服務數量,百度提供的接口最豐富。
單看圖像技術,就眼花繚亂,這么多服務。
如果看服務質量,那應該各有千秋。比如曠視,人臉相關的技術,應該是比較好,畢竟早些年支付寶的人臉識別技術,都是曠視提供技術支持的,底子在那呢。
4
API 的使用方法
API 使用方法很簡單,只要有爬蟲基礎,完全可以輕松應對。
咱們以曠視科技的人臉技術為例進行測試。
首先,創建一個賬號。
然后,找一個想體驗的服務,咱先試試美顏。這年頭,沒有美顏還真不敢上鏡。
曠視科技提供了現成的功能體驗。
美顏美型:
https://www.faceplusplus.com.cn/face-beautify/
分為美顏和美型,我的理解就是磨皮濾鏡加瘦臉,看一下美顏效果。
左邊是美顏前,右邊是美顏后,拖拽中間的豎欄,可以調節查看。
下面有很多備選圖片,你可以挨個翻牌子,看效果。都不喜歡,也可以點擊自定義,上傳自己想測試的圖片。
這是通過 web 體驗服務,如果想嵌入自己的程序里,那就需要學習如何使用這個 API 了。
登錄賬號,選擇控制臺,然后創建一個應用,選擇「試用」類型。
填寫一些信息后,就會生成一個 API Key 和 API Secret,這兩個是使用 API 接口要用到的參數。
相當于你的個人賬號和密碼。
在控制臺,有各種服務的使用說明,比如人臉美顏。
Beautify API v2:
https://console.faceplusplus.com.cn/documents/134252584
這個文檔,有詳細的接口描述,根據這些描述,就可以寫代碼。
可以看到請求 POST 請求,圖片可以是以 URL、二進制文件或 base64 編碼上傳。
瞧,這就是我之前提到過的,POST 請求的內容,除了是一些文字內容,還可以是一張圖片。
根據手冊編寫代碼:
import requests import base64 import json import cv2 import numpy as np import matplotlib.pyplot as plt %matplotlib inlinebeautify_url = "https://api-cn.faceplusplus.com/facepp/v2/beautify" # 你創建的應用的 API Key 和 API Secret(也叫 Secret Key) AK = '' SK = ''# 可選參數,不填寫,默認50 # 美白程度 0 - 100 whitening = 80 # 磨皮程度 0 - 100 smoothing = 80 # 瘦臉程度 0 - 100 thinface = 20 # 小臉程度 0 - 100 shrink_face = 50 # 大眼程度 0 - 100 enlarge_eye = 50 # 去眉毛程度 0 - 100 remove_eyebrow = 50 # 濾鏡名稱,不填寫,默認無濾鏡 filter_type = ''# 二進制方式打開圖片 img_name = 'test_1.png' f = open(img_name, 'rb') # 轉 base64 img_base64 = base64.b64encode(f.read())# 使用 whitening、smoothing、thinface 三個可選參數,其他用默認值 data = {'api_key': AK,'api_secret': SK,'image_base64': img_base64,'whitening': whitening,'smoothing': smoothing,'thinface': thinface,}r = requests.post(url=beautify_url, data=data) html = json.loads(r.text)# 解析base64圖片 base64_data = html['result'] imgData = base64.b64decode(base64_data) nparr = np.frombuffer(imgData, np.uint8) img_res = cv2.imdecode(nparr, cv2.IMREAD_COLOR) img_res_BGR = cv2.cvtColor(img_res, cv2.COLOR_RGB2BGR)# 原始圖片 img = cv2.imread(img_name) img_BGR = cv2.cvtColor(img, cv2.COLOR_RGB2BGR)# 顯示圖片 fig, axs = plt.subplots(nrows=1, ncols=2, sharex=False, sharey=False, figsize=(10,10)) axs[0].imshow(img_BGR) axs[1].imshow(img_res_BGR) plt.show()你需要填寫自己的 AK 和 SK,并下載一張圖片。
圖片地址:
https://cuijiahua.com/wp-content/uploads/2020/05/test_1.png
API 接口返回的數據是 base64 的二進制文件,需要解碼,運行結果:
效果還不錯吧!
除了美顏,還有很多服務,人臉檢測、人臉識別、人臉關鍵點等等。
人臉關鍵點就是在臉上畫一堆點,這有什么用?
一個比較成熟的例子就是虛擬主播。
看著還不錯吧?
AI 開放平臺提供了豐富的 AI 領域的基礎能力,怎么用,用來干什么,就看自己的想象力了。
當然,這些免費使用的 API 接口有很多限制,比如不能請求太快等等。
想要 API 提供性能更好,QPS 更大的優質服務,那就得充錢了。
老板,加個鐘!
5
最后
這種 API 接口也可以用來清晰數據,訓練自己的網絡模型,花點小錢,清晰一批數據,真香!
? ???精 彩 文 章?
再見,Eclipse...
危險!在國內,自己私下使用VPN是否違法?
用Python賺錢的5個方法,教你業余時間賺外快!
【福利】:來領書吧,pick起來!
本書介紹了21個典型的人工智能應用場景,主要有三類實戰:預測類項目實戰篇、識別類項目實戰篇和生成類項目實戰篇。非常不錯!現送出一本,掃碼關注小詹的視頻號「小詹同學」,我將用Python寫個隨機生成數在關注列表抽出這個幸運讀者!明日推文末尾公布結果,公開透明,簡單粗暴!
總結
以上是生活随笔為你收集整理的文末福利 | Python3 网络爬虫:老板,需要特殊服务吗?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 原创《SQL基础知识第2版》PDF高清版
- 下一篇: 安利!阿里程序员常用的 15 款开发者工