溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python如何實(shí)現(xiàn)簡(jiǎn)單網(wǎng)頁(yè)圖片

發(fā)布時(shí)間:2021-10-27 17:03:13 來源:億速云 閱讀:245 作者:柒染 欄目:編程語言

今天就跟大家聊聊有關(guān)Python如何實(shí)現(xiàn)簡(jiǎn)單網(wǎng)頁(yè)圖片,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

  Python實(shí)現(xiàn)簡(jiǎn)單網(wǎng)頁(yè)圖片抓取完整代碼實(shí)例

  分類專欄: python

  文章標(biāo)簽: 編程語言 python java 大數(shù)據(jù)

  版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。

  本文鏈接:https://blog.csdn.net/chengxun03/article/details/106321564

  收起

  @本文來源于公眾號(hào):csdn2299,喜歡可以關(guān)注公眾號(hào) 程序員學(xué)府

  這篇文章主要介紹了Python實(shí)現(xiàn)簡(jiǎn)單網(wǎng)頁(yè)圖片抓取完整代碼實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下。

  利用python抓取網(wǎng)絡(luò)圖片的步驟是:

  1、根據(jù)給定的網(wǎng)址獲取網(wǎng)頁(yè)源代碼

  2、利用正則表達(dá)式把源代碼中的圖片地址過濾出來

  3、根據(jù)過濾出來的圖片地址下載網(wǎng)絡(luò)圖片

  以下是比較簡(jiǎn)單的一個(gè)抓取某一個(gè)百度貼吧網(wǎng)頁(yè)的圖片的實(shí)現(xiàn):

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

  # feimengjuan

  import re

  import urllib

  import urllib2

  #抓取網(wǎng)頁(yè)圖片

  #根據(jù)給定的網(wǎng)址來獲取網(wǎng)頁(yè)詳細(xì)信息,得到的html就是網(wǎng)頁(yè)的源代碼

  def getHtml(url):

  page = urllib.urlopen(url)

  html = page.read()

  return html

  def getImg(html):

  #利用正則表達(dá)式把源代碼中的圖片地址過濾出來

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

  imgre = re.compile(reg)

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

  x = 0

  for imgurl in imglist:

  urllib.urlretrieve(imgurl,'%s.jpg' %x) #打開imglist中保存的圖片網(wǎng)址,并下載圖片保存在本地

  x = x + 1

  html = getHtml("http://tieba.baidu.com/p/2460150866")#獲取該網(wǎng)址網(wǎng)頁(yè)詳細(xì)信息,得到的html就是網(wǎng)頁(yè)的源代碼

  getImg(html)#從網(wǎng)頁(yè)源代碼中分析并下載保存圖片

  進(jìn)一步對(duì)代碼進(jìn)行了整理,在本地創(chuàng)建了一個(gè)“圖片”文件夾來保存圖片

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

  # feimengjuan

  import re

  import urllib

  import urllib2

  import os

  #抓取網(wǎng)頁(yè)圖片

  #根據(jù)給定的網(wǎng)址來獲取網(wǎng)頁(yè)詳細(xì)信息,得到的html就是網(wǎng)頁(yè)的源代碼

  def getHtml(url):

  page = urllib.urlopen(url)

  html = page.read()

  return html

  #創(chuàng)建保存圖片的文件夾

  def mkdir(path):

  path = path.strip()

  # 判斷路徑是否存在

  # 存在 True

  # 不存在 Flase

  isExists = os.path.exists(path)

  if not isExists:

  print u'新建了名字叫做',path,u'的文件夾'

  # 創(chuàng)建目錄操作函數(shù)

  os.makedirs(path)

  return True

  else:

  # 如果目錄存在則不創(chuàng)建,并提示目錄已經(jīng)存在

  print u'名為',path,u'的文件夾已經(jīng)創(chuàng)建成功'

  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

  # 對(duì)于每張圖片地址,進(jìn)行保存

  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

  #獲取網(wǎng)頁(yè)中所有圖片的地址

  def getAllImg(html):

  #利用正則表達(dá)式把源代碼中的圖片地址過濾出來

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

  imgre = re.compile(reg)

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

  return imglist

  #創(chuàng)建本地保存文件夾,并下載保存圖片

  if __name__ == '__main__':

  html = getHtml("http://tieba.baidu.com/p/2460150866")#獲取該網(wǎng)址網(wǎng)頁(yè)詳細(xì)信息,得到的html就是網(wǎng)頁(yè)的源代碼

  path = u'圖片'

  mkdir(path) #創(chuàng)建本地文件夾

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

  saveImages(imglist,path) # 保存圖片

  結(jié)果在“圖片”文件夾下保存了幾十張圖片,如截圖:

看完上述內(nèi)容,你們對(duì)Python如何實(shí)現(xiàn)簡(jiǎn)單網(wǎng)頁(yè)圖片有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI