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) # 保存图片 

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

总结

以上就是本文关于Python实现简单网页图片抓取完整代码实例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:

Python爬虫实例爬取网站搞笑段子

python爬虫系列Selenium定向爬取虎扑篮球图片详解

如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

(0)

相关推荐

  • python利用urllib实现爬取京东网站商品图片的爬虫实例

    本例程使用urlib实现的,基于python2.7版本,采用beautifulsoup进行网页分析,没有第三方库的应该安装上之后才能运行,我用的IDE是pycharm,闲话少说,直接上代码! # -*- coding: utf-8 -* import re import os import urllib import urllib2 from bs4 import BeautifulSoup def craw(url,page): html1=urllib2.urlopen(url).read(

  • python妹子图简单爬虫实例

    本文实例讲述了python妹子图简单爬虫实现方法.分享给大家供大家参考.具体如下: #!/usr/bin/env python #coding: utf-8 import urllib import urllib2 import os import re import sys #显示下载进度 def schedule(a,b,c): ''''' a:已经下载的数据块 b:数据块的大小 c:远程文件的大小 ''' per = 100.0 * a * b / c if per > 100 : per

  • python3之微信文章爬虫实例讲解

    前提: python3.4 windows 作用:通过搜狗的微信搜索接口http://weixin.sogou.com/来搜索相关微信文章,并将标题及相关链接导入Excel表格中 说明:需xlsxwriter模块,另程序编写时间为2017/7/11,以免之后程序无法使用可能是网站做过相关改变,程序较为简单,除去注释40多行. 正题: 思路:打开初始Url --> 正则获取标题及链接 --> 改变page循环第二步 --> 将得到的标题及链接导入Excel 爬虫的第一步都是先手工操作一遍(

  • 基于Python实现的百度贴吧网络爬虫实例

    本文实例讲述了基于Python实现的百度贴吧网络爬虫.分享给大家供大家参考.具体如下: 完整实例代码点击此处本站下载. 项目内容: 用Python写的百度贴吧的网络爬虫. 使用方法: 新建一个BugBaidu.py文件,然后将代码复制到里面后,双击运行. 程序功能: 将贴吧中楼主发布的内容打包txt存储到本地. 原理解释: 首先,先浏览一下某一条贴吧,点击只看楼主并点击第二页之后url发生了一点变化,变成了: http://tieba.baidu.com/p/2296712428?see_lz=

  • Python 制作糗事百科爬虫实例

    早上起来闲来无事做,莫名其妙的就弹出了糗事百科的段子,转念一想既然你送上门来,那我就写个爬虫到你网站上爬一爬吧,一来当做练练手,二来也算找点乐子. 其实这两天也正在接触数据库的内容,可以将爬取下来的数据保存在数据库中,以待以后的利用.好了,废话不多说了,先来看看程序爬取的数据结果 值得一提的是,我在程序中想一下子爬取糗事百科 30 页的内容,但是出现了连接错误,当我把页数降到 20 页的时候,程序就可以正常的跑起来了,不知道是什么原因,渴望知道的大神可以告诉我一声,感激不尽. 程序非常简单,直接

  • Python网络爬虫实例讲解

    聊一聊Python与网络爬虫. 1.爬虫的定义 爬虫:自动抓取互联网数据的程序. 2.爬虫的主要框架 爬虫程序的主要框架如上图所示,爬虫调度端通过URL管理器获取待爬取的URL链接,若URL管理器中存在待爬取的URL链接,爬虫调度器调用网页下载器下载相应网页,然后调用网页解析器解析该网页,并将该网页中新的URL添加到URL管理器中,将有价值的数据输出. 3.爬虫的时序图 4.URL管理器 URL管理器管理待抓取的URL集合和已抓取的URL集合,防止重复抓取与循环抓取.URL管理器的主要职能如下图

  • Python爬虫实例爬取网站搞笑段子

    众所周知,python是写爬虫的利器,今天作者用python写一个小爬虫爬下一个段子网站的众多段子. 目标段子网站为"http://ishuo.cn/",我们先分析其下段子的所在子页的url特点,可以轻易发现发现为"http://ishuo.cn/subject/"+数字, 经过测试发现,该网站的反扒机制薄弱,可以轻易地爬遍其所有站点. 现在利用python的re及urllib库将其所有段子扒下 import sys import re import urllib

  • Python实现简单网页图片抓取完整代码实例

    利用python抓取网络图片的步骤是: 1.根据给定的网址获取网页源代码 2.利用正则表达式把源代码中的图片地址过滤出来 3.根据过滤出来的图片地址下载网络图片 以下是比较简单的一个抓取某一个百度贴吧网页的图片的实现: # -*- coding: utf-8 -*- # feimengjuan import re import urllib import urllib2 #抓取网页图片 #根据给定的网址来获取网页详细信息,得到的html就是网页的源代码 def getHtml(url): pag

  • Python爬虫之网页图片抓取的方法

    一.引入 这段时间一直在学习Python的东西,以前就听说Python爬虫多厉害,正好现在学到这里,跟着小甲鱼的Python视频写了一个爬虫程序,能实现简单的网页图片下载. 二.代码 __author__ = "JentZhang" import urllib.request import os import random import re def url_open(url): ''' 打开网页 :param url: :return: ''' req = urllib.reques

  • Python爬虫实现网页信息抓取功能示例【URL与正则模块】

    本文实例讲述了Python爬虫实现网页信息抓取功能.分享给大家供大家参考,具体如下: 首先实现关于网页解析.读取等操作我们要用到以下几个模块 import urllib import urllib2 import re 我们可以尝试一下用readline方法读某个网站,比如说百度 def test(): f=urllib.urlopen('http://www.baidu.com') while True: firstLine=f.readline() print firstLine 下面我们说

  • 使用Python编写简单网络爬虫抓取视频下载资源

    我第一次接触爬虫这东西是在今年的5月份,当时写了一个博客搜索引擎,所用到的爬虫也挺智能的,起码比电影来了这个站用到的爬虫水平高多了! 回到用Python写爬虫的话题. Python一直是我主要使用的脚本语言,没有之一.Python的语言简洁灵活,标准库功能强大,平常可以用作计算器,文本编码转换,图片处理,批量下载,批量处理文本等.总之我很喜欢,也越用越上手,这么好用的一个工具,一般人我不告诉他... 因为其强大的字符串处理能力,以及urllib2,cookielib,re,threading这些

  • Ruby实现网页图片抓取

    前段时间看到很多人写的下妹子脚本,自己也写一个 module CommonHelper require 'nokogiri' require 'open-uri' def down_load_xmz site_url = "http://www.xxx.com" for index_page in 1..141 doc_html = Nokogiri::HTML(open(site_url+'/share/comment-page-'+index_page.to_s)) doc_htm

  • Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容

    1.引言 在Python网络爬虫内容提取器一文我们详细讲解了核心部件:可插拔的内容提取器类gsExtractor.本文记录了确定gsExtractor的技术路线过程中所做的编程实验.这是第二部分,第一部分实验了用xslt方式一次性提取静态网页内容并转换成xml格式.留下了一个问题:javascript管理的动态内容怎样提取?那么本文就回答这个问题. 2.提取动态内容的技术部件 在上一篇python使用xslt提取网页数据中,要提取的内容是直接从网页的source code里拿到的.但是一些Aja

  • Python实现微博动态图片爬取详解

    由于微博的网页端有反爬虫,需要登录,所以我们换个思路,曲线救国. 我们找到微博在浏览器上面用于手机端的调试的APL,如何找到呢? 我这边直接附上微博的手机端的地址:https://m.weibo.cn/ 1.模拟搜索用户 搜索一个用户获取到的api: https://m.weibo.cn/api/container/getIndex?containerid=100103type=1&q=半半子&page_type=searchall 1.1 对api内参数进行处理 containerid=

  • Python简单实现网页内容抓取功能示例

    本文实例讲述了Python简单实现网页内容抓取功能.分享给大家供大家参考,具体如下: 使用模块: import urllib2 import urllib 普通抓取实例: #!/usr/bin/python # -*- coding: UTF-8 -*- import urllib2 url = 'http://www.baidu.com' #创建request对象 request = urllib2.Request(url) #发送请求,获取结果 try: response = urllib2

  • 用python的requests第三方模块抓取王者荣耀所有英雄的皮肤实例

    本文使用python的第三方模块requests爬取王者荣耀所有英雄的图片,并将图片按每个英雄为一个目录存入文件夹中,方便用作桌面壁纸 下面时具体的代码,已通过python3.6测试,可以成功运行: 对于所要爬取的网页连接可以通过王者荣耀官网找到, # -*- coding: utf-8 -*- """ Created on Wed Dec 13 13:49:52 2017 @author:KillerTwo """ import request

  • Python基于百度AI实现抓取表情包

    本文先抓取网络上的表情图像,然后利用百度 AI 识别表情包上的说明文字,并利用表情文字重命名文件,这样当发表情包时,不需要逐个打开查找,直接根据文件名选择表情并发送. 一.百度 AI 开放平台的 Key 申请方法 本例使用了百度 AI 的 API 接口实现文字识别.因此需要先申请对应的 API 使用权限,具体步骤如下: 在网页浏览器(比如 Chrome 或者火狐) 的地址栏中输入 ai.baidu.com,进入到百度云 AI 的官网,在该页面中单击右上角的 控制台 按钮. 进入到百度云 AI 官

随机推荐