Python實現簡單網頁圖片抓取完整程式碼例項

guoduan發表於2020-05-27

  Python實現簡單網頁圖片抓取完整程式碼例項

 

  分類專欄: python

  文章標籤: 程式語言 python java 大資料

  版權宣告:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連結和本宣告。

  本文連結:https://blog.csdn.net/chengxun03/article/details/106321564

  收起

  @本文來源於公眾號:csdn2299,喜歡可以關注公眾號 程式設計師學府

  這篇文章主要介紹了Python實現簡單網頁圖片抓取完整程式碼例項,具有一定借鑑價值,需要的朋友可以參考下。

  利用python抓取網路圖片的步驟是:

  1、根據給定的網址獲取網頁原始碼

  2、利用正規表示式把原始碼中的圖片地址過濾出來

  3、根據過濾出來的圖片地址下載網路圖片

  以下是比較簡單的一個抓取某一個百度貼吧網頁的圖片的實現:

  # -*- coding: utf-8 -*-

  # feimengjuan

  import re

  import urllib

  import urllib2

  #抓取網頁圖片

  #根據給定的網址來獲取網頁詳細資訊,得到的html就是網頁的原始碼

  def getHtml(url):

  page = urllib.urlopen(url)

  html = page.read()

  return html

  def getImg(html):

  #利用正規表示式把原始碼中的圖片地址過濾出來

  reg = r'src="(.+?\.jpg)" pic_ext'

  imgre = re.compile(reg)

  imglist = imgre.findall(html) #表示在整個網頁中過濾出所有圖片的地址,放在imglist中

  x = 0

  for imgurl in imglist:

  urllib.urlretrieve(imgurl,'%s.jpg' %x) #開啟imglist中儲存的圖片網址,並下載圖片儲存在本地

  x = x + 1

  html = getHtml(")#獲取該網址網頁詳細資訊,得到的html就是網頁的原始碼

  getImg(html)#從網頁原始碼中分析並下載儲存圖片

  進一步對程式碼進行了整理,在本地建立了一個“圖片”資料夾來儲存圖片

  # -*- coding: utf-8 -*-

  # feimengjuan

  import re

  import urllib

  import urllib2

  import os

  #抓取網頁圖片

  #根據給定的網址來獲取網頁詳細資訊,得到的html就是網頁的原始碼

  def getHtml(url):

  page = urllib.urlopen(url)

  html = page.read()

  return html

  #建立儲存圖片的資料夾

  def mkdir(path):

  path = path.strip()

  # 判斷路徑是否存在

  # 存在 True

  # 不存在 Flase

  isExists = os.path.exists(path)

  if not isExists:

  print u'新建了名字叫做',path,u'的資料夾'

  # 建立目錄操作函式

  os.makedirs(path)

  return True

  else:

  # 如果目錄存在則不建立,並提示目錄已經存在

  print u'名為',path,u'的資料夾已經建立成功'

  return False

  # 輸入檔名,儲存多張圖片

  def saveImages(imglist,name):

  number = 1

  for imageURL in imglist:

  splitPath = imageURL.split('.')

  fTail = splitPath.pop()

  if len(fTail) > 3:

  fTail = 'jpg'

  fileName = name + "/" + str(number) + "." + fTail

  # 對於每張圖片地址,進行儲存

  try:

  u = urllib2.urlopen(imageURL)

  data = u.read()

  f = open(fileName,'wb+')

  f.write(data)

  print u'正在儲存的一張圖片為',fileName

  f.close()

  except urllib2.URLError as e:

  print (e.reason)

  number += 1

  #獲取網頁中所有圖片的地址

  def getAllImg(html):

  #利用正規表示式把原始碼中的圖片地址過濾出來

  reg = r'src="(.+?\.jpg)" pic_ext'

  imgre = re.compile(reg)

  imglist = imgre.findall(html) #表示在整個網頁中過濾出所有圖片的地址,放在imglist中

  return imglist

  #建立本地儲存資料夾,並下載儲存圖片

  if __name__ == '__main__':

  html = getHtml(")#獲取該網址網頁詳細資訊,得到的html就是網頁的原始碼

  path = u'圖片'

  mkdir(path) #建立本地資料夾

  imglist = getAllImg(html) #獲取圖片的地址列表

  saveImages(imglist,path) # 儲存圖片

  結果在“圖片”資料夾下儲存了幾十張圖片,如截圖:

  非常感謝你的閱讀

  大學的時候選擇了自學python,工作了發現吃了計算機基礎不好的虧,學歷不行這是

  沒辦法的事,只能後天彌補,於是在編碼之外開啟了自己的逆襲之路,不斷的學習python核心知識,深

  入的研習計算機基礎知識,整理好了,我放在我們的微信公眾號《程式設計師學府》,如果你也不甘平庸,

  那就與我一起在編碼之外,不斷成長吧!

  ————————————————

  版權宣告:本文為CSDN博主「程式設計師牡蠣」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。

   原文連結: https://blog.csdn.net/chengxun03/article/details/106321564


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69971700/viewspace-2694552/,如需轉載,請註明出處,否則將追究法律責任。

相關文章