src获取同级目录中的图片_一个简单的Python爬虫实例:百度贴吧页面下载图片
本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片。
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爬虫实例:百度贴吧页面下载图片相关推荐
- 利用python爬取知乎评论_一个简单的python爬虫,爬取知乎
一个简单的python爬虫,爬取知乎 主要实现 爬取一个收藏夹 里 所有问题答案下的 图片 文字信息暂未收录,可自行实现,比图片更简单 具体代码里有详细注释,请自行阅读 项目源码: 1 # -*- c ...
- python爬微博关键字_一个简单的python爬虫实践,爬取包含关键词的新浪微博
此项目主要功能是通过微博"搜索"页面,每天自动爬取所有包含自定list中词汇的微博原数据.低速可控,简单粗暴,适合用来有针对性的搜集数据量不是很大的包含关键词的微博,每日可爬3-6 ...
- python编写通讯录管理系统_一个简单的python程序实例(通讯录)
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- 利用爬虫从一个百度贴吧页面下载图片
1. 概述 本文主要实现一个简单的爬虫,目的是从一个百度贴吧页面下载图片.下载图片的步骤如下: 获取网页html文本内容: 分析html中图片的html标签特征,用正则解析出所有的图片url链接列表: ...
- python爬虫入门:搜索和批量下载图片
目录 python爬虫批量下载图片 前言 一.具体流程 1.使用必应搜索图片 2.实现方法 导入模块 具体代码 二.效果演示 python爬虫批量下载图片 前言 本篇文章以在必应下载硬币图片为例,实现 ...
- 用python实现视频换脸_超简单使用Python换脸实例
换脸! 这段时间,deepfakes搞得火热,比方说把<射雕英雄传>里的朱茵换成了杨幂,看下面的图!毫无违和感! 其实早在之前,基于AI换脸的技术就得到了应用,比方说<速度与激情7& ...
- python简单小游戏代码_一个简单的python小游戏---七彩同心圆
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 用pygame做一个简单的python小游戏-七彩同心圆 玩法:每次点击鼠标时,会以鼠标为圆心,不断 ...
- python实现视频ai换脸_超简单使用Python换脸实例
换脸! 这段时间,deepfakes搞得火热,比方说把<射雕英雄传>里的朱茵换成了杨幂,看下面的图!毫无违和感! 其实早在之前,基于AI换脸的技术就得到了应用,比方说<速度与激情7& ...
- python视频换脸例子_超简单使用Python换脸实例
换脸! 这段时间,deepfakes搞得火热,比方说把<射雕英雄传>里的朱茵换成了杨幂,看下面的图!毫无违和感! 其实早在之前,基于AI换脸的技术就得到了应用,比方说<速度与激情7& ...
最新文章
- 无准备,不编程——计算机达人成长之路(15)连载
- oracle数据库是db还是dbnms,Oracle数据库中各种类型的文件损坏与修复过程详解(2)...
- 用特征迭代次数区分minst数据集的0和1
- 设置跳转到新的actvity之后不可返回
- k8s挂载目录_K8S中挂载目录引发的血案!
- matlab 求向量的交集_从零开始的matlab学习笔记——(16)函数绘图
- RPC框架设计概要-性能
- 桥接模式Bridge
- NEsper Nuget包
- 图片验证,滑块验证解决
- SQL Server 2008用'sa'登录失败(错误18456)
- hadoop的map和reduce
- 【Vue组件】从零开始实现一个支持插入自定义表情的评论组件
- kso经验积累 -- c#发送邮件
- [解决]通常每个套接字地址只允许使用一次
- Unity 3D-- 摄像机Clear Flags和Culling Mask属性用途详解
- 计算机影响因子10.0什么水平,论文的影响因子是什么?由什么决定?_1 论文影响因子10.0什么水平...
- 建筑材料行业采购合同电子化,数商云采购商城系统助力企业采购业务更规范高效
- 无纸化案例分析之一——21位标准长方形会议室
- 小爱同学桌面提醒器开发0基础教程
热门文章
- linux c之perror和exit使用总结
- Android之Timer和TimerTask的介绍
- Andorid之KeyguardManager的介绍
- 一杆台球的击球力道竟能传递35米?
- 现代女性都有哪些烦恼?
- 重磅!Nature盘点年度十佳论文,生命科学占据半壁江山,中国学者表现亮眼
- 21个令程序员泪流满面的瞬间【第二弹】
- 2018全球大学AI排名发布,中国高校表现强势!
- oracle查询表占用空,Oracle 表的行数、表占用空间大小,列的非空行数、列占用空间大小 查询...
- Android 页面布局xd,Adobe XD强大的布局系列工具 助你事半功倍