Python爬蟲爬取網上圖片原始碼,可用來製作深度學習資料集
阿新 • • 發佈:2018-11-23
這次利用python設計一個爬取百度圖片上的圖片的原始碼,其中利用的是python的urllib,如果沒有裝的,可以使用Anconda在環境裡進行安裝或者
pip install urllib
這兩種方式都可以安裝,長話短說,上圖吧,點選執行後,輸入你要下載的圖片型別:
比如,熊貓?美女?還是熊貓先吧
再來美女試試!
咋都是這麼性感!
那麼是不是百度圖片頁面搜尋的那樣呢?
看一下,對比一下,是的!
提示:有時會出現頁面錯誤的資訊,如下
那就說明前60張爬不下來,想想也就不鬥智鬥勇了,百度裡的圖片還是有很多的,能爬多少是多少得了!
這個可不是簡單的隨意爬取圖片的吶,這個等你在深度學習後面做網路訓練製作資料集時,可以從網上爬取一些你需要的訓練圖片資源的。不要用錯地方了。。
附上原始碼:
(對於其中的url一欄,如果有興趣,可以關注我後私信給我,然後我後臺發給你使用,這也是和有興趣的同學一個交流的機會,嘿嘿)
import urllib.request import urllib.parse import re import os # 新增header,其中Referer是必須的,否則會返回403錯誤,User-Agent是必須的,這樣才可以偽裝成瀏覽器進行訪問 header = \ { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36', "referer": "https://image.baidu.com" } #這裡url是一個非常主要的url,可以直接訪問baidu網址的,這個不容易外傳,所以就不寫全了 url = "https://image.baidu.com/search/acjson?tn=resultjson_com&ipn=rj&ct=201326592&is=&fp" keyword = input("請輸入搜尋關鍵字:") # 轉碼 keyword = urllib.parse.quote(keyword, 'utf-8') n = 0 j = 0 while (n < 1000): error = 0 n += 30 # url url1 = url.format(word=keyword, pageNum=str(n)) # 獲取請求 rep = urllib.request.Request(url1, headers=header) # 開啟網頁 rep = urllib.request.urlopen(rep) # 獲取網頁內容 try: html = rep.read().decode('utf-8') # print(html) except: print("出錯了!") error = 1 print("出錯頁數:" + str(n)) if error == 1: continue # 正則匹配 p = re.compile("thumbURL.*?\.jpg") # 獲取正則匹配到的結果,返回list s = p.findall(html) if os.path.isdir("D://pic") != True: os.makedirs("D://pic") with open("testpic.txt", "a") as f: # 獲取圖片 for i in s: print(i) i = i.replace('thumbURL":"', '') print(i) f.write(i) f.write("\n") # 儲存圖片 urllib.request.urlretrieve(i, "D://pic/pic{num}.jpg".format(num=j)) j += 1 f.close() print("總共爬取圖片數為:" + str(j))