10000+ gif表情包不是梦,get这一篇文就够了!!!小哥哥快到碗里来,再也不怕斗图没有表情包了
生活随笔
收集整理的這篇文章主要介紹了
10000+ gif表情包不是梦,get这一篇文就够了!!!小哥哥快到碗里来,再也不怕斗图没有表情包了
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
10000+ gif表情包不是夢,get這一篇文就夠了!!!小哥哥快到碗里來,再也不怕斗圖沒有表情包了
- 1. 依賴模塊及安裝
- 2. 查找網(wǎng)頁規(guī)律
- 3. 源碼
最近看的爬蟲的博客太多,小小的學(xué)習(xí)了下。主要是http請求,分析網(wǎng)頁的http請求拼接(分頁),返回值html 或者json的解析(用到正則表達(dá)式re或者json模塊);
先上一張成果圖:
1. 依賴模塊及安裝
pip install request
pip install json
pip install re
2. 查找網(wǎng)頁規(guī)律
主要是:尋找分頁規(guī)律 & 返回值規(guī)律 & 找到返回值的gif的真實路徑
https://www.gaoding.com/api/aggregate/search?q=&page_size=120&page_num=1&design_cid=&channel_cid=&industry_cid=&filter_id=1612599&type_filter_id=1612599&channel_filter_id=&channel_children_filter_id=&sort=&styles=&colors=&ratios=運行效果如下圖:
再也不怕斗圖沒有表情包了,歐耶~~
3. 源碼
# url = 'https://www.gaoding.com/templates/f1612599' 網(wǎng)站獲取動圖gif
# -*- coding:utf-8 -*-
import json
import requestsdef getGifUrls():alist = []for i in range(1, 20, True):url_page = 'https://www.gaoding.com/api/aggregate/search?q=&page_size=120&page_num=' + str(i) + '&design_cid=&channel_cid=&industry_cid=&filter_id=1612599&type_filter_id=1612599&channel_filter_id=&channel_children_filter_id=&sort=&styles=&colors=&ratios='print(url_page)# 設(shè)置請求超時(20s)r = requests.get(url_page, timeout=20)if r.status_code == requests.codes.ok:print('=== status_code === ', r.status_code) # 響應(yīng)碼print('=== headers === ', r.headers) # 響應(yīng)頭print('=== Content-Type === ', r.headers.get('Content-Type')) # 獲取響應(yīng)頭中的Content-Type字段# 解析數(shù)據(jù)r.encoding = 'utf-8'print('content: ', type(r.text))f = open("./gifimgs/gif-" + str(i) + "-out.json", "w", encoding='utf-8')f.write(r.text)f.close()data2 = json.loads(r.text)print(type(data2))materials = data2['searchMaterials']# print(type(materials))# print(materials['code'])pageTotal = materials['pageInfo']['total']pageNum = materials['pageInfo']['num']pageSize = materials['pageInfo']['size']print(pageNum, pageSize, pageTotal)nodes = materials['nodes']print('nodes: ', type(nodes))result = [i['preview']['url'] for i in nodes]# for i, d in enumerate(nodes):# print(d['preview']['url'])# gif = d['preview']['url']# 打印gif的地址及數(shù)print(str(i), 'gif數(shù):', len(result))print(str(i), 'gif0:')print(result[0])alist.extend(result)else:r.raise_for_status() # 拋出異常return alistdef saveGifs(urls):num = 1for gif in urls:# 設(shè)置請求超時(20s)r = requests.get(gif, timeout=20)if r.status_code == requests.codes.ok:with open('./gifimgs/%d.gif' % num, 'wb') as fin:fin.write(r.content) # 寫入圖片二進(jìn)制print('正在下載第%d圖片' % num + gif)num += 1else:r.raise_for_status() # 拋出異常list = getGifUrls()
giflist = saveGifs(list)
總結(jié)
以上是生活随笔為你收集整理的10000+ gif表情包不是梦,get这一篇文就够了!!!小哥哥快到碗里来,再也不怕斗图没有表情包了的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用Python,OpenCV转换颜色空
- 下一篇: Windows下命令行及Java+Tes