30行Python代碼從百度自動下載圖片(內附源碼和exe程序)

只需要30行代碼就可以從百度自動下載圖片
大家好,我是行哥,一個專門教小學生擼Python的編程老師(小學生都能學會的編程)

這裏行哥想問大家三個問題 :

  • 你還在爲批量下載表情包發愁嗎?
  • 你還在爲找不到好看的圖片素材在擔憂嗎?
  • 你還在爲各種精美壁紙的挑選和下載找遍各大網站嗎?

行哥寫了30行Python代碼來幫你解決這個問題,現在你只要對代碼進行復制、粘貼、運行三連就可以爬取你想要的圖片。

如果不會python也沒有問題,行哥將python代碼轉成可以直接使用的應用程序,文末放上爬蟲exe的獲取方式

no bb show your code

import os
import requests
import re

keyWord = "楊超越" # 設置爬取圖片的主題
number = 10       # 爬取圖片數量
if not os.path.exists(keyWord):
    os.makedirs(keyWord)
url = r'http://image.baidu.com/search/flip?tn=baiduimage&ipn=r&ct=201326592&cl=2&lm=-1&st=-1&fm=result&fr=&sf=1&fmq' \
      r'=1497491098685_R&pv=&ic=0&nc=1&z=&se=1&showtab=0&fb=0&width=&height=&face=0&istype=2&ie=utf-8&ctd' \
      r'=1497491098685%5E00_1519X735&word=' + keyWord
get = requests.get(url)
pciture_url = re.findall(r'objURL":"(.*?)",', get.text)
a = 1
for i in pciture_url:
    p_type = i.split('.')[-1]
    a += 1
    try:
        picture = requests.get(i, timeout=10)
        name = "%s/%s_%d.%s" % (keyWord, keyWord, a, p_type)
        with open(name, 'wb') as f:
            f.write(picture.content)
        print('第%d張圖片正在下載' % a)
    except:
        print('第%d張圖片下載失敗!已跳過...' % a)
    if a >= number:
        break

代碼邏輯主要是爬取百度圖片網站的網頁源碼,然後從源碼中提取每張圖片的地址鏈接,使用循環保存每一張圖片。

可以將這份代碼直接拷貝到python編輯器裏,只需要修改keyWord變量和num變量,設置成自己想爬取的圖片主題和數量就可以運行下載了。爬取的結果如下圖所示:

爬取代碼高級版本

上面的代碼只能爬取一頁,因爲他只對一個網址裏的圖片鏈接進行提取,如果想爬取大批量的圖片,需要提取圖片網站下一頁的鏈接,這個核心代碼如下,如果需要完整版代碼可以後臺回覆【一行01】就可以獲得所有代碼

def get_url_one_page(url):
    html = requests.get(url)
    html.encoding = 'utf-8'
    html = html.text
    url_pic_this_page = re.findall(r'"objURL":"(.*?)",', html)
    url_next_page_prefix = re.findall(r'<a href="(.*?)" class="n">下一頁', html)
    if len(url_next_page_prefix) != 0:
        url_next_page = 'http://image.baidu.com' + url_next_page_prefix[0]
    else:
        print("已到達最後一頁!")
        url_next_page = None
    return url_pic_this_page, url_next_page

不會代碼也可以使用爬蟲

之前的爬蟲,很多讀者說沒有接觸過python或者爬蟲,想實現功能又看不懂代碼。所以行哥在這裏已經將這個python代碼轉成可以直接使用的exe,如下圖所示:

在爬取關鍵詞裏輸入想要爬取的圖片主題,然後輸入爬取圖片張數,最後選擇圖片保存的路徑並點擊開始爬取就只需要靜靜等待即可(網速夠快的話,一般來說一秒下載一張圖片)最後下載後的結果如下


【一行數據】公衆號後臺回覆【一行01】就可以獲得這款可以直接使用爬蟲取圖片的exe咯

end:一行行行行行,一行數據

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章