搜索
首页后端开发Python教程实例详解Python实现简单网页图片抓取

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

Dec 18, 2017 am 10:52 AM
python实现简单

本文主要介绍了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("http://tieba.baidu.com/p/2460150866")#获取该网址网页详细信息,得到的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("http://tieba.baidu.com/p/2460150866")#获取该网址网页详细信息,得到的html就是网页的源代码 
  path = u'图片' 
  mkdir(path) #创建本地文件夹 
  imglist = getAllImg(html) #获取图片的地址列表 
  saveImages(imglist,path) # 保存图片

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

相关推荐:

PHP简单网页图片抓取类

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

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

以上是实例详解Python实现简单网页图片抓取的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
您如何切成python阵列?您如何切成python阵列?May 01, 2025 am 12:18 AM

Python列表切片的基本语法是list[start:stop:step]。1.start是包含的第一个元素索引,2.stop是排除的第一个元素索引,3.step决定元素之间的步长。切片不仅用于提取数据,还可以修改和反转列表。

在什么情况下,列表的表现比数组表现更好?在什么情况下,列表的表现比数组表现更好?May 01, 2025 am 12:06 AM

ListSoutPerformarRaysin:1)DynamicsizicsizingandFrequentInsertions/删除,2)储存的二聚体和3)MemoryFeliceFiceForceforseforsparsedata,butmayhaveslightperformancecostsinclentoperations。

如何将Python数组转换为Python列表?如何将Python数组转换为Python列表?May 01, 2025 am 12:05 AM

toConvertapythonarraytoalist,usEthelist()constructororageneratorexpression.1)intimpthearraymoduleandcreateanArray.2)USELIST(ARR)或[XFORXINARR] to ConconverTittoalist,请考虑performorefformanceandmemoryfformanceandmemoryfformienceforlargedAtasetset。

当Python中存在列表时,使用数组的目的是什么?当Python中存在列表时,使用数组的目的是什么?May 01, 2025 am 12:04 AM

choosearraysoverlistsinpythonforbetterperformanceandmemoryfliceSpecificScenarios.1)largenumericaldatasets:arraysreducememoryusage.2)绩效 - 临界杂货:arraysoffersoffersOffersOffersOffersPoostSfoostSforsssfortasssfortaskslikeappensearch orearch.3)testessenforcety:arraysenforce:arraysenforc

说明如何通过列表和数组的元素迭代。说明如何通过列表和数组的元素迭代。May 01, 2025 am 12:01 AM

在Python中,可以使用for循环、enumerate和列表推导式遍历列表;在Java中,可以使用传统for循环和增强for循环遍历数组。1.Python列表遍历方法包括:for循环、enumerate和列表推导式。2.Java数组遍历方法包括:传统for循环和增强for循环。

什么是Python Switch语句?什么是Python Switch语句?Apr 30, 2025 pm 02:08 PM

本文讨论了Python版本3.10中介绍的新“匹配”语句,该语句与其他语言相同。它增强了代码的可读性,并为传统的if-elif-el提供了性能优势

Python中有什么例外组?Python中有什么例外组?Apr 30, 2025 pm 02:07 PM

Python 3.11中的异常组允许同时处理多个异常,从而改善了并发场景和复杂操作中的错误管理。

Python中的功能注释是什么?Python中的功能注释是什么?Apr 30, 2025 pm 02:06 PM

Python中的功能注释将元数据添加到函数中,以进行类型检查,文档和IDE支持。它们增强了代码的可读性,维护,并且在API开发,数据科学和图书馆创建中至关重要。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

SecLists

SecLists

SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境