日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

妹子说我没有表情包?没关系通过python爬虫爬取表情

發布時間:2023/12/8 python 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 妹子说我没有表情包?没关系通过python爬虫爬取表情 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

需求分析

昨天,我被一個妹子嘲笑了,“仙草,你天天聊天,怎么連一個表情包都沒有啊?每次發也是用系統推薦的默認表情,和一個土狗似的,笑死人了。”

啊這,確實,我從來都不保存表情,所以每次聊天要么就是轉發別人的,要么就是輸入幾個字,看看系統會不會給我推薦表情,確實是有點不太行

我虛心請教(中路對狙),“那你的表情包是哪里來的啊?不會是和別人聊天的時候偷來的吧,那可是有夠丟臉的呢!“

妹子不屑一顧,”切,你說的什么啊,看到好看的表情收藏起來不是很正常的事情嗎?像你一樣沒幾個好友,恐怕也沒有表情可以收藏吧?“

好吧,我想她說的沒錯。可是誰說收藏表情一定要通過和別人聊天呢?我們可以直接通過python的爬蟲程序,把表情包爬取下來!

實現分析

說干就干,不就是爬取表情嗎,有什么困難的,等我把表情包收集齊了,我就是最靚的仔了。三十年河東,三十年河西,莫欺少年沒有圖

那么首先呢,我們遇到了第一個小困難就是,我們需要知道表情包的類型。就是說,不是所有的表情包都是gif動圖,肯定還有png格式的靜態圖,我們如何區分動圖和靜圖,也就是說,如何區分圖片的類型呢?

一個好的想法就是,通過正則表達式,把.png,.jpg,.gif的格式類型匹配出來,然后就能夠知道對應的類型了。不過呢,寫正則表達式有點麻煩,我想偷懶,于是就采用了一個更簡單的方法,也就是說,反正.png,.gif都是4個字母的,那我們就直接把后四個字符取出來不就解決了嗎?

好吧,但是偷懶也是有代價的,這個方法看起來很簡單,實則不行,因為結尾的格式一定是4個字符的嗎?比如說,如果遇到了.jpeg,怎么辦呢?是不是程序就出錯了呢?不要緊,我已經去查看過了,目標中沒有.jpeg格式的文件。但是現在沒有就能保證程序不出錯了嗎?當然不,如果以后有了.jpeg怎么辦呢?是不是就立刻出錯了呢?

對,說的沒錯,但是我就是不改,不過把我問題已經告訴你了,你可以自己嘗試對其進行簡單的修改,比如說加上一個if判斷,或者是正則表達式來改正這一錯誤

完整代碼展示

import requests import time from parsel import Selector from threading import Thread from queue import Queue from base64 import b64decodeurl = b64decode("aHR0cDovL3d3dy5iYnNuZXQuY29tL2dhb3hpYW8=").decode() headers = {"user-agent": "Mozilla/5.0"} q = Queue()def put_img():r = requests.get(url, headers=headers)s = Selector(r.text)al = s.xpath("//div[@class='thumbnail']/a")num = 1for a in al:src = a.xpath("./img/@src").get()title = a.xpath("./img/@alt").get()q.put({"num": str(num),"src": src,"title": title})num += 1def get_img():while True:img = q.get()r = requests.get(img["src"], headers=headers)with open(img["num"] + img["src"][-4::], "wb") as f:f.write(r.content)q.task_done()time.sleep(1)print(img["num"] + "個,已完成")t_put = Thread(target=put_img) t_get = Thread(target=get_img) t_get.setDaemon(True) t_put.start() t_get.start() t_put.join() q.join()

正常運行以后,就可以看到消息提示了

隨后,通過查看文件,我們可以發現,表情包已經成功的保存了。太好了,現在我終于可以拿去聊天啦


自從上次的事情以后,不知道的參考這里,我都是非常謹慎小心的,避免影響到其他人的網站業務,因此,只爬取了非常有限的內容。如果這不能讓你滿意的話,你需要自己對程序進行修改。

嚴格遵守爬蟲的相關規定是非常重要的,如果因此帶來不便,請諒解!

總結

以上是生活随笔為你收集整理的妹子说我没有表情包?没关系通过python爬虫爬取表情的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。