本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片。

1. 概述

本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片。下载图片的步骤如下:

获取网页html文本内容;

分析html中图片的html标签特征,用正则解析出所有的图片url链接列表;

根据图片的url链接列表将图片下载到本地文件夹中。

2. urllib+re实现

#!/usr/bin/python
# coding:utf-8
# 实现一个简单的爬虫,爬取百度贴吧图片
import urllib
import re# 根据url获取网页html内容
def getHtmlContent(url):page = urllib.urlopen(url)return page.read()# 从html中解析出所有jpg图片的url
# 百度贴吧html中jpg图片的url格式为:<img ... src="XXX.jpg" width=...>
def getJPGs(html):# 解析jpg图片url的正则jpgReg = re.compile(r'<img.+?src="(.+?.jpg)" width')  # 注:这里最后加一个'width'是为了提高匹配精确度# 解析出jpg的url列表jpgs = re.findall(jpgReg,html)return jpgs# 用图片url下载图片并保存成制定文件名
def downloadJPG(imgUrl,fileName):urllib.urlretrieve(imgUrl,fileName)# 批量下载图片,默认保存到当前目录下
def batchDownloadJPGs(imgUrls,path = './'):# 用于给图片命名count = 1for url in imgUrls:downloadJPG(url,''.join([path,'{0}.jpg'.format(count)]))count = count + 1# 封装:从百度贴吧网页下载图片
def download(url):html = getHtmlContent(url)jpgs = getJPGs(html)batchDownloadJPGs(jpgs)def main():url = 'http://tieba.baidu.com/p/2256306796'download(url)if __name__ == '__main__':main()

运行上面脚本,过几秒种之后完成下载,可以在当前目录下看到图片已经下载好了:

3. requests + re实现

下面用requests库实现下载,把getHtmlContent和downloadJPG函数都用requests重新实现。

#!/usr/bin/python
# coding:utf-8
# 实现一个简单的爬虫,爬取百度贴吧图片
import requests
import re# 根据url获取网页html内容
def getHtmlContent(url):page = requests.get(url)return page.text# 从html中解析出所有jpg图片的url
# 百度贴吧html中jpg图片的url格式为:<img ... src="XXX.jpg" width=...>
def getJPGs(html):# 解析jpg图片url的正则jpgReg = re.compile(r'<img.+?src="(.+?.jpg)" width')  # 注:这里最后加一个'width'是为了提高匹配精确度# 解析出jpg的url列表jpgs = re.findall(jpgReg,html)return jpgs# 用图片url下载图片并保存成制定文件名
def downloadJPG(imgUrl,fileName):# 可自动关闭请求和响应的模块from contextlib import closingwith closing(requests.get(imgUrl,stream = True)) as resp:with open(fileName,'wb') as f:for chunk in resp.iter_content(128):f.write(chunk)# 批量下载图片,默认保存到当前目录下
def batchDownloadJPGs(imgUrls,path = './'):# 用于给图片命名count = 1for url in imgUrls:downloadJPG(url,''.join([path,'{0}.jpg'.format(count)]))print '下载完成第{0}张图片'.format(count)count = count + 1# 封装:从百度贴吧网页下载图片
def download(url):html = getHtmlContent(url)jpgs = getJPGs(html)batchDownloadJPGs(jpgs)def main():url = 'http://tieba.baidu.com/p/2256306796'download(url)if __name__ == '__main__':main()

成长离不开与优秀的同伴共同交流,如果你需要好的学习环境,好的学习资源,这里欢迎每一位热爱Python的小伙伴,Python学习圈

输出:和前面一样。

src获取同级目录中的图片_一个简单的Python爬虫实例:百度贴吧页面下载图片相关推荐

  1. 利用python爬取知乎评论_一个简单的python爬虫,爬取知乎

    一个简单的python爬虫,爬取知乎 主要实现 爬取一个收藏夹 里 所有问题答案下的 图片 文字信息暂未收录,可自行实现,比图片更简单 具体代码里有详细注释,请自行阅读 项目源码: 1 # -*- c ...

  2. python爬微博关键字_一个简单的python爬虫实践,爬取包含关键词的新浪微博

    此项目主要功能是通过微博"搜索"页面,每天自动爬取所有包含自定list中词汇的微博原数据.低速可控,简单粗暴,适合用来有针对性的搜集数据量不是很大的包含关键词的微博,每日可爬3-6 ...

  3. python编写通讯录管理系统_一个简单的python程序实例(通讯录)

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  4. 利用爬虫从一个百度贴吧页面下载图片

    1. 概述 本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片.下载图片的步骤如下: 获取网页html文本内容: 分析html中图片的html标签特征,用正则解析出所有的图片url链接列表: ...

  5. python爬虫入门:搜索和批量下载图片

    目录 python爬虫批量下载图片 前言 一.具体流程 1.使用必应搜索图片 2.实现方法 导入模块 具体代码 二.效果演示 python爬虫批量下载图片 前言 本篇文章以在必应下载硬币图片为例,实现 ...

  6. 用python实现视频换脸_超简单使用Python换脸实例

    换脸! 这段时间,deepfakes搞得火热,比方说把<射雕英雄传>里的朱茵换成了杨幂,看下面的图!毫无违和感! 其实早在之前,基于AI换脸的技术就得到了应用,比方说<速度与激情7& ...

  7. python简单小游戏代码_一个简单的python小游戏---七彩同心圆

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 用pygame做一个简单的python小游戏-七彩同心圆 玩法:每次点击鼠标时,会以鼠标为圆心,不断 ...

  8. python实现视频ai换脸_超简单使用Python换脸实例

    换脸! 这段时间,deepfakes搞得火热,比方说把<射雕英雄传>里的朱茵换成了杨幂,看下面的图!毫无违和感! 其实早在之前,基于AI换脸的技术就得到了应用,比方说<速度与激情7& ...

  9. python视频换脸例子_超简单使用Python换脸实例

    换脸! 这段时间,deepfakes搞得火热,比方说把<射雕英雄传>里的朱茵换成了杨幂,看下面的图!毫无违和感! 其实早在之前,基于AI换脸的技术就得到了应用,比方说<速度与激情7& ...

最新文章

  1. 无准备,不编程——计算机达人成长之路(15)连载
  2. oracle数据库是db还是dbnms,Oracle数据库中各种类型的文件损坏与修复过程详解(2)...
  3. 用特征迭代次数区分minst数据集的0和1
  4. 设置跳转到新的actvity之后不可返回
  5. k8s挂载目录_K8S中挂载目录引发的血案!
  6. matlab 求向量的交集_从零开始的matlab学习笔记——(16)函数绘图
  7. RPC框架设计概要-性能
  8. 桥接模式Bridge
  9. NEsper Nuget包
  10. 图片验证,滑块验证解决
  11. SQL Server 2008用'sa'登录失败(错误18456)
  12. hadoop的map和reduce
  13. 【Vue组件】从零开始实现一个支持插入自定义表情的评论组件
  14. kso经验积累 -- c#发送邮件
  15. [解决]通常每个套接字地址只允许使用一次
  16. Unity 3D-- 摄像机Clear Flags和Culling Mask属性用途详解
  17. 计算机影响因子10.0什么水平,论文的影响因子是什么?由什么决定?_1 论文影响因子10.0什么水平...
  18. 建筑材料行业采购合同电子化,数商云采购商城系统助力企业采购业务更规范高效
  19. 无纸化案例分析之一——21位标准长方形会议室
  20. 小爱同学桌面提醒器开发0基础教程

热门文章

  1. linux c之perror和exit使用总结
  2. Android之Timer和TimerTask的介绍
  3. Andorid之KeyguardManager的介绍
  4. 一杆台球的击球力道竟能传递35米?
  5. 现代女性都有哪些烦恼?
  6. 重磅!Nature盘点年度十佳论文,生命科学占据半壁江山,中国学者表现亮眼
  7. 21个令程序员泪流满面的瞬间【第二弹】
  8. 2018全球大学AI排名发布,中国高校表现强势!
  9. oracle查询表占用空,Oracle 表的行数、表占用空间大小,列的非空行数、列占用空间大小 查询...
  10. Android 页面布局xd,Adobe XD强大的布局系列工具 助你事半功倍