用python批量下载贴吧图片 附源代码
环境:windows 7 64位;python2.7;IDE pycharm2016.1
功能:
批量下载百度贴吧某吧某页的所有帖子中的所有图片
使用方法:
1.安装python2.7,安装re模块,安装urllib2模块
2.复制以下源代码保存为tbImgiDownloader.py文件
3.打开某个贴吧并复制其网址
4.打开文件tbImgiDownloader.py在第37行的单引号中输入网址,保存
5.双击tbImgiDownloader.py
说明:
1.本程序每次可以下载大概50个贴子中的图片
2.图片名字自动保存为时间+位序
3.如若不能运行,欢迎咨询
4.复制源码时注意别复制行号(我就这样做过-_-|||)
5.觉得好用的同学别忘了点推荐哦!
#! /usr/bin/env python
#coding=utf-8 import re,time
import urllib2,urllib def tiebaImgiDownloader(url):
'''
贴吧jpg格式图片下载器:
形式参数某吧某帖子的url地址
运行后将保存图片到本目录
''' pattern = r'img class="BDE_Image" .*?src="(.*?jpg)"'#待爬取链接的正则表达式
fstr = urllib2.urlopen(url).read()#读取帖子网页源代码为str传给fstr
urllist = re.findall(pattern,fstr)#爬取所有与正则表达式匹配的jpg链接,并保存在urllist中
urllist = list( set(urllist) ) print '总共爬取%d个图片链接'%len(urllist),'\n' i = 1
for furl in urllist:
timestr = time.strftime('%Y%m%d%H%M%S')
urllib.urlretrieve(furl,timestr+'0%d.jpg'%i)#逐个下载图片,并命名为当前时间+序数
print '已保存图片',timestr+'0%d.jpg\n'%i
i+=1 print '图片下载完毕!\n\n\n' return True def __main__():
print '\n\t\t\t欢迎使用贴吧jpg格式图片下载器!\n' html = urllib.urlopen('').read() # 读取某吧某页的网页源代码 。。。。。。。。。。。。。。。。。粘贴网址区。。。。。。。。。。。。。。。。。。。。。。。。。。。。
'''网址示例
1.http://tieba.baidu.com/f?kw=%BE%CF%E6%BA%B5t&fr=ala0&loc=rec小鞠
2.http://tieba.baidu.com/f?kw=%E9%9E%A0%E5%A9%A7%E7%A5%8E&ie=utf-8&pn=200小鞠
3.http://tieba.baidu.com/f?kw=%E5%A3%81%E7%BA%B8&ie=utf-8&tab=good精品壁纸
'''
pattern = r'a href="(.p.[0-9]*)"' # 待爬取二级网页网址的正则表达式
urllist = re.findall(pattern, html) # 抓取所有二级网页网址,返回list
urllist = list(set(urllist)) # 删除重复的二级网页网址
preurl = r'http://tieba.baidu.com' # 二级网页网址的前缀网址
print '抓取%d个二级网页\n'%len( urllist ) for urlOne in urllist:
tiebaImgiDownloader(preurl + urlOne) # 下载二级网页中的图片 return 0 if __name__ == '__main__':
__main__()
后记:此文是本人原创,转载请注明出处,谢谢合作
用python批量下载贴吧图片 附源代码的更多相关文章
- python批量下载淘宝图片3
import urllib.request import os def url_open(url): req = urllib.request.Request(url) req.add_header( ...
- 用Python批量下载DACC的MODIS数据
本人初次尝试用Python批量下载DACC的MODIS数据,记下步骤,提醒自己,数据还在下载,成功是否未知,等待结果中...... 若有大佬发现步骤有不对之处,望指出,不胜感激. 1.下载Python ...
- 用python批量下载图片
一 写爬虫注意事项 网络上有不少有用的资源, 如果需要合理的用爬虫去爬取资源是合法的,但是注意不要越界,前一阶段有个公司因为一个程序员写了个爬虫,导致公司200多个人被抓,所以先进入正题之前了解下什么 ...
- python——批量下载图片
前言 批量下载网页上的图片需要三个步骤: 获取网页的URL 获取网页上图片的URL 下载图片 例子 from html.parser import HTMLParser import urllib.r ...
- 用 Python 批量下载百度图片
为了做一个图像分类的小项目,需要制作自己的数据集.要想制作数据集,就得从网上下载大量的图片,再统一处理. 这时,一张张的保存下载,就显得很繁琐.那么,有没有一种方法可以把搜索到的图片直接下载到本地 ...
- python批量下载微信好友头像,微信头像批量下载
#!/usr/bin/python #coding=utf8 # 自行下载微信模块 itchat 小和QQ496631085 import itchat,os itchat.auto_login() ...
- Python 批量下载BiliBili视频 打包成软件
文章目录 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大家 ...
- Python - 批量下载 IIS 共享的文件
1.说明 用 IIS 以WEB形式发布了本地文件夹,提供文件下载,并设置了访问权限:默认下载需要点击一个一个的下载,web界面如下: 3.脚本 执行脚本批量下载文件,会在当前目录创建文件夹,并压缩该文 ...
- python批量下载图片的三种方法
一是用微软提供的扩展库win32com来操作IE: win32com可以获得类似js里面的document对象,但貌似是只读的(文档都没找到). 二是用selenium的webdriver: sele ...
随机推荐
- 禁止ASP.NET MVC模型绑定时将空字符串绑定为null
为model添加[DisplayFormat(ConvertEmptyStringToNull = false)] [Display(ResourceType = typeof(AppStrings) ...
- 【BZOJ1088】[SCOI2005] 扫雷Mine(分类讨论)
点此看题面 大致题意: 给你一个\(2*n\)的扫雷棋盘,现让你根据第二列的信息确定第一列有多少种摆法. 扫雷性质 听说这是一道动态规划+数学题. 其实,根据扫雷游戏的某个性质,只要确定了第一个格子是 ...
- 用ComboBox控件制作浏览器网址输入框
实现效果: 知识运用: ComboBox控件的FindString public int FindString(string s) //查找数据项集合中指定数据项的索引 和Select方法 publi ...
- convert命令
可以修改图片的分辨率 convert -resize 600×600 src.jpg dst.jpg src.jpg是你要修改的图片的名字 dst.jpg是新生成的图片名字
- Javascript的数据类型和转换
JavaScript 数据类型 在 JavaScript 中有 5 种不同的数据类型: string number boolean object function 3 种对象类型: Object Da ...
- Servlet 学习小结
一.是什么 是用java编写的服务器端程序.从狭义来讲,servlet是java语言实现的一个接口:广义的servlet是指任何实现了这个servlet接口的类.一般情况下,人们将servlet理解为 ...
- facebook的infer检测工具的安装
缘由 由于公司产出代码的时候会使用静态扫描工具检测代码的质量,所以自己就想动手尝试一番infer整个的使用方式和使用效果,便动手安装了infer,结果安装过程中遇见太多的坑,导致很多时候都安装失败,这 ...
- vue的属性监听
一.vue的监听 1.监听的例子 如: html:<input type="number" v-model="a" /> js: watch: { ...
- split 分割压缩文件
1.普通tar压缩命令 tar -zcvf cm-11.tar.gz cm-11 //将cm-11文件夹压缩成cm-11.tar.gz 2.压缩后的文件太大,需要将cm-11.tar.gz分割成N个指 ...
- Date.prototype.Format---对Date的扩展
// 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季度(q) 可以用 1-2 个占位符, // 年(y)可以用 1-4 个占 ...