成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

爬蟲敏感圖片的識別與過濾,了解一下?

linkin / 1464人閱讀

摘要:爬蟲敏感圖片的識別與過濾,了解一下需求我們需要識別出敏感作者的頭像把皮卡丘換成優(yōu)雅的。對比哈希不同圖片對比的方法,就是對比它們的位哈希中,有多少位不一樣漢明距離。

爬蟲敏感圖片的識別與過濾,了解一下? 需求

我們需要識別出敏感作者的avatar頭像,把”皮卡丘“換成”優(yōu)雅的python“。

敏感圖片樣本屬性:

爬蟲獲取的圖片屬性:

替換成:

原理

檢查兩個(gè)圖片的相似度,一個(gè)簡單而快速的算法:感知哈希算法(Perceptual Hash),通過某種提取特征的方式為每個(gè)圖片計(jì)算一個(gè)指紋(哈希),這樣對比兩個(gè)圖片相似與否就變成了對比兩個(gè)指紋異同的問題。

實(shí)現(xiàn)
Step1.縮小尺寸

將圖片縮小到8*8的大小,這樣做可以去除圖片的細(xì)節(jié),只保留結(jié)構(gòu)和明暗等基本信息,同時(shí)摒棄不同尺寸和比例帶來的圖片差異。

Step2.灰度處理

把縮小后的圖片轉(zhuǎn)化為64級灰度圖(每個(gè)像素只有64種顏色)。

Step3.計(jì)算平均值

計(jì)算所有64個(gè)像素的灰度平均值。

Step4.計(jì)算哈希

這里哈希的計(jì)算方法是:上面說的64個(gè)像素的灰度與平均值進(jìn)行比較,大于或等于平均值記為1,小于記為0。

將每個(gè)像素的比較結(jié)果組合在一起成為一個(gè)64位的二進(jìn)制整數(shù),這個(gè)整數(shù)就是此圖片的指紋。

Step5.對比哈希

不同圖片對比的方法,就是對比它們的64位哈希中,有多少位不一樣(漢明距離)。一般來說如果不同的位數(shù)不超過5,就說明兩張圖片很相似,如果大于10,就很可能是兩張不同的圖片。

代碼(python3)

先來安裝pillow、requests:

pip3 install pillow requests

導(dǎo)入包:

from functools import reduce
from PIL import Image
import requests

實(shí)現(xiàn)圖片相似度算法:

# 計(jì)算pHash(只需要三行):
def phash(img):
    img = img.resize((8, 8), Image.ANTIALIAS).convert("L")
    avg = reduce(lambda x, y: x + y, img.getdata()) / 64.
    return reduce(
        lambda x, y: x | (y[1] << y[0]),
        enumerate(map(lambda i: 0 if i < avg else 1, img.getdata())),
        0
    )

# 計(jì)算漢明距離:
def hamming_distance(a, b):
    return bin(a^b).count("1")

# 計(jì)算兩個(gè)圖片是否相似:
def is_imgs_similar(img1,img2):
    return True if hamming_distance(phash(img1),phash(img2)) <= 5 else False

結(jié)合爬蟲:

# 打開本地存放一張敏感圖片;
# 本次為了方便演示,從新浪圖床拉下一張1024X1024的圖片,保存命名為sensitive.jpg
sensitive_url="https://ws4.sinaimg.cn/large/006tNbRwgy1fwttj7bi36j30sg0sgwm0.jpg"
headers = {
        "User-Agent": "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.0 Safari/532.5"}
pic = requests.get(sensitive_url, headers=headers, timeout=300)
if pic.status_code == 200:
    with open("sensitive.jpg", "wb") as f:
        f.write(pic.content)
sensitive_pic = Image.open("sensitive.jpg")

# 爬蟲獲取的圖片
target_url="https://ws3.sinaimg.cn/large/006tNbRwgy1fwttsauo6jj30h80han0y.jpg"
pic = requests.get(target_url, headers=headers, timeout=300)
if pic.status_code == 200:
    with open("target.jpg", "wb") as f:
        f.write(pic.content)
target_pic = Image.open("target.jpg")

# 判斷爬蟲獲取的圖片和敏感圖片是否相似
if is_imgs_similar(target_pic, sensitive_pic):
    print("2張圖片相似,替換敏感圖片為”優(yōu)雅的python“:{}".format("https://ws2.sinaimg.cn/large/006tNbRwgy1fw9yjmot3uj30y60y6q40.jpg"))
else:
    print("不相似")

運(yùn)行結(jié)果:

github源碼

https://gist.github.com/luzih...

參考文章

相似圖片檢測?三行代碼就夠了 - 掘金

此 Python2 腳本怎么修改為 Python3 運(yùn)行 - V2EX

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/44923.html

相關(guān)文章

  • Spring Boot項(xiàng)目實(shí)踐之問答社區(qū)

    摘要:異步事件處理本項(xiàng)目涉及到多種異步事件的處理。即是的粉絲,是的關(guān)注對象。模式定義優(yōu)缺點(diǎn)推事件觸發(fā)后廣播給所有粉絲。具體來說,推模式就是事件觸發(fā)后產(chǎn)生,觸發(fā)事件的用戶下所有粉絲的實(shí)現(xiàn)中都存入該的。 項(xiàng)目源代碼已托管在 Github,歡迎 Star、Fork。 Q & A 問答社區(qū) QA 是一個(gè)基于 B/S 架構(gòu)而設(shè)計(jì)開發(fā)的社區(qū)網(wǎng)站。 showImg(https://segmentfault...

    binaryTree 評論0 收藏0
  • 首次公開,整理12年積累博客收藏夾,零距離展示《收藏夾吃灰》系列博客

    摘要:時(shí)間永遠(yuǎn)都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時(shí)候把他們整理一下了。那是因?yàn)槭詹貖A太亂,橡皮擦給設(shè)置私密了,不收拾不好看呀。 ...

    Harriet666 評論0 收藏0
  • 大話爬蟲實(shí)踐技巧

    摘要:圖意淫爬蟲與反爬蟲間的對決數(shù)據(jù)的重要性如今已然是大數(shù)據(jù)時(shí)代,數(shù)據(jù)正在驅(qū)動著業(yè)務(wù)開發(fā),驅(qū)動著運(yùn)營手段,有了數(shù)據(jù)的支撐可以對用戶進(jìn)行用戶畫像,個(gè)性化定制,數(shù)據(jù)可以指明方案設(shè)計(jì)和決策優(yōu)化方向,所以互聯(lián)網(wǎng)產(chǎn)品的開發(fā)都是離不開對數(shù)據(jù)的收集和分析,數(shù) showImg(https://segmentfault.com/img/remote/1460000013428119?w=539&h=337)...

    沈儉 評論0 收藏0
  • 七牛云趙之?。憾嗑S度融合賦能視頻 AI 實(shí)踐

    摘要:月日下午,趙之健在七牛架構(gòu)師實(shí)踐日第二十九期進(jìn)行了多維度融合賦能視頻的實(shí)踐為題的實(shí)戰(zhàn)分享。本文主要分享了七牛人工智能實(shí)驗(yàn)室在視頻方面的一些工作,分別有兩個(gè)關(guān)鍵詞一個(gè)是多維度融合,另外一個(gè)關(guān)鍵詞是視頻。 6 月 30 日下午,趙之健在七牛架構(gòu)師實(shí)踐日第二十九期進(jìn)行了《多維度融合賦能視頻 AI 的實(shí)踐》為題的實(shí)戰(zhàn)分享。? 作者簡介:?showImg(https://segmentfault...

    Taonce 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<