中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python爬取人臉識別圖片數據集/python爬去圖片/python爬蟲

發布時間:2020-06-21 11:35:41 來源:網絡 閱讀:1744 作者:張大力plus 欄目:大數據

本人長期出售超大量微博數據、旅游網站評論數據,并提供各種指定數據爬取服務,Message to YuboonaZhang@Yahoo.com。同時歡迎加入社交媒體數據交流群:99918768

前言

最近在做機器學習下的人臉識別的學習,機器學習這個東西有點暴力,很大程度上靠訓練的數據量來決定效果。為了找數據,通過一個博客的指導,瀏覽了幾個很知名的數據集。

幾個大型數據集是通過發郵件申請進行下載,幾個小型數據集直接在網頁的鏈接下載,還有一個Pubfig數據集則是提供了大量圖片的鏈接來讓我們自己寫程序來下載。

權衡了數據量的需求,最后選擇Pubfig的數據集,于是就自己寫了一個python圖片采集程序,里面用了urllib和requests兩種方法.

分析Pubfig提供的下載文件的特點

python爬取人臉識別圖片數據集/python爬去圖片/python爬蟲
這個數據文件提供了在數據集中出現的所有人物
python爬取人臉識別圖片數據集/python爬去圖片/python爬蟲
這個數據文件提供了每個人的urls

可以看出來這個數據集的處理其實非常簡單了,可以通過readlines的方式存進列表用空格分開一下數據就可以把urls提取出來了。

處理一下urls文件

urls在文件的中后部,寫個文件把它單純地提取出來,方便使用。
我單獨把Miley_Cyrus的部分提取出來放了一個txt文件

pic_url = []
with open('./Miley_Cyrus.txt') as f:
    for i in f.readlines():
        pic_url.append(i.strip('\r\n'))

urls = []
for s in pic_url:
    _, _, _, url, _, _ = s.split()
    urls.append(url)

# 寫入到文件里面
with open('url.data', 'w') as f:
    for i in urls:
        f.write(i)
        f.write('\n')

爬取urls圖片

1. Urllibs方法

import urllib.request as request
import socket
import os

# 在同級目錄新建文件夾存圖片
os.mkdir('./img')

# 為請求增加一下頭
user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36'
headers = ('User-Agent', user_agent)
opener = request.build_opener()
opener.addheaders = [headers]
request.install_opener(opener)

# 設定一下無響應時間,防止有的壞圖片長時間沒辦法下載下來
timeout = 20
socket.setdefaulttimeout(timeout)

# 從文件里面讀urls
urls = []
with open('./url.data') as f:
    for i in f.readlines():
        if i != '':
            urls.append(i)
        else:
            pass

# 通過urllibs的requests獲取所有的圖片
count = 1
bad_url = []
for url in urls:
    url.rstrip('\n')
    print(url)
    try:
        pic = request.urlretrieve(url, './img3/%d.jpg' % count)
        print('pic %d' % count)
        count += 1
    except Exception as e:
        print(Exception, ':', e)
        bad_url.append(url)
    print('\n')
print('got all photos that can be got')

# 把沒有抓取到的urls保存起來
with open('bad_url3.data', 'w') as f:
    for i in bad_url:
        f.write(i)
        f.write('\n')
    print('saved bad urls')

2. Requests方法

import requests
import socket
import os

# 在同級目錄新建文件夾存圖片
os.mkdir('./img')

# 設定一下無響應時間,防止有的壞圖片長時間沒辦法下載下來
timeout = 20
socket.setdefaulttimeout(timeout)

# 從文件里面讀urls
urls = []
with open('./url.data') as f:
    for i in f.readlines():
        if i != '':
            urls.append(i)
        else:
            pass

# 為請求增加一下頭,獲取圖片
user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36'
headers = {
    'User-Agent': user_agent
}
bad_url = []
count = 1
for url in urls:
    url.rstrip('\n')
    print(url)
    try:
        pic = requests.get(url, headers=headers)
        with open('./img2/%d.jpg' % count, 'wb') as f:
            f.write(pic.content)
            f.flush()
        print('pic %d' % count)
        count += 1
    except Exception as e:
        print(Exception, ':', e)
        bad_url.append(url)
    print('\n')
print('got all photos that can be got')

# 保存壞鏈接
with open('bad_url.data', 'w') as f:
    for i in bad_url:
        f.write(i)
        f.write('\n')
    print('saved bad urls')

個人博客

8aoy1.cn

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铜鼓县| 和顺县| 抚顺市| 麟游县| 舞阳县| 阳城县| 潼南县| 门源| 松阳县| 马龙县| 武山县| 青浦区| 溧阳市| 栖霞市| 金乡县| 鄯善县| 乌什县| 全南县| 宿迁市| 双城市| 堆龙德庆县| 光山县| 浙江省| 东光县| 永善县| 盱眙县| 仁怀市| 涿鹿县| 保靖县| 天峻县| 神农架林区| 常熟市| 蓝田县| 睢宁县| 独山县| 阿拉善左旗| 西平县| 永城市| 九江县| 沐川县| 平顶山市|