实例详解Python实现简单网页图片抓取


本文摘自php中文网,作者小云云,侵删。

本文主要介绍了Python实现简单网页图片抓取完整代码实例,具有一定借鉴价值,需要的朋友可以参考下。

利用python抓取网络图片的步骤是:
1、根据给定的网址获取网页源代码
2、利用正则表达式把源代码中的图片地址过滤出来
3、根据过滤出来的图片地址下载网络图片

以下是比较简单的一个抓取某一个百度贴吧网页的图片的实现:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

# -*- 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("http://tieba.baidu.com/p/2460150866")#获取该网址网页详细信息,得到的html就是网页的源代码

getImg(html)#从网页源代码中分析并下载保存图片

进一步对代码进行了整理,在本地创建了一个“图片”文件夹来保存图片


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

# -*- 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("http://tieba.baidu.com/p/2460150866")#获取该网址网页详细信息,得到的html就是网页的源代码

  path = u'图片'

  mkdir(path) #创建本地文件夹

  imglist = getAllImg(html) #获取图片的地址列表

  saveImages(imglist,path) # 保存图片

结果在“图片”文件夹下保存了几十张图片,如截图:

相关推荐:

PHP简单网页图片抓取类

如何把这里的图片抓取到本地

PHP+Ajax远程图片抓取器下载的例子

以上就是实例详解Python实现简单网页图片抓取的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python可以代替vb吗

怎么查看Python安装路径

Python 实现字符串中指定位置插入一个字符

Python是面向对象还是面向过程的

Python怎么读取图片

Python的import是什么意思

Python编程游戏有哪些

Python逻辑运算符怎么理解

Python实现关键词提取的示例讲解

Python中判断语句与循环语句的简单小结(附示例)

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...