环境: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批量下载贴吧图片 附源代码的更多相关文章

  1. python批量下载淘宝图片3

    import urllib.request import os def url_open(url): req = urllib.request.Request(url) req.add_header( ...

  2. 用Python批量下载DACC的MODIS数据

    本人初次尝试用Python批量下载DACC的MODIS数据,记下步骤,提醒自己,数据还在下载,成功是否未知,等待结果中...... 若有大佬发现步骤有不对之处,望指出,不胜感激. 1.下载Python ...

  3. 用python批量下载图片

    一 写爬虫注意事项 网络上有不少有用的资源, 如果需要合理的用爬虫去爬取资源是合法的,但是注意不要越界,前一阶段有个公司因为一个程序员写了个爬虫,导致公司200多个人被抓,所以先进入正题之前了解下什么 ...

  4. python——批量下载图片

    前言 批量下载网页上的图片需要三个步骤: 获取网页的URL 获取网页上图片的URL 下载图片 例子 from html.parser import HTMLParser import urllib.r ...

  5. 用 Python 批量下载百度图片

    ​ 为了做一个图像分类的小项目,需要制作自己的数据集.要想制作数据集,就得从网上下载大量的图片,再统一处理. 这时,一张张的保存下载,就显得很繁琐.那么,有没有一种方法可以把搜索到的图片直接下载到本地 ...

  6. python批量下载微信好友头像,微信头像批量下载

    #!/usr/bin/python #coding=utf8 # 自行下载微信模块 itchat 小和QQ496631085 import itchat,os itchat.auto_login() ...

  7. Python 批量下载BiliBili视频 打包成软件

    文章目录 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大家 ...

  8. Python - 批量下载 IIS 共享的文件

    1.说明 用 IIS 以WEB形式发布了本地文件夹,提供文件下载,并设置了访问权限:默认下载需要点击一个一个的下载,web界面如下: 3.脚本 执行脚本批量下载文件,会在当前目录创建文件夹,并压缩该文 ...

  9. python批量下载图片的三种方法

    一是用微软提供的扩展库win32com来操作IE: win32com可以获得类似js里面的document对象,但貌似是只读的(文档都没找到). 二是用selenium的webdriver: sele ...

随机推荐

  1. PHP的模板引擎smarty原理浅谈

    mvc是开发中的一个伟大的思想,使得开发代码有了更加清晰的层次,让代码分为了三层各施其职.无论是对代码的编写以及后期的阅读和维护,都提供了很大的便利. 我们在php开发中,视图层view是不允许有ph ...

  2. GridView的 PreRender事件与范例--GridView + CheckBox,点选多列资料(复选删除)

    GridView的 PreRender事件与范例--GridView + CheckBox,点选多列资料(复选删除) 之前有一个范例,相同的结果可以用两种作法来实践 [GridView] 资料系结表达 ...

  3. pta 编程题12 堆中的路径

    其它pta数据结构编程题请参见:pta 这道题考察的是最小堆. 堆是一个完全二叉树,因此可用数组表示,一个下标为 i 的结点的父节点下标为 i / 2,子结点下标为 2i 和 2i + 1. 插入元素 ...

  4. 【BZOJ4001】[TJOI2015] 概率论(卡特兰数)

    点此看题面 大致题意: 问你一棵\(n\)个节点的有根二叉树叶节点的期望个数. 大致思路 看到期望,比较显然可以想到设\(num_i\)为\(i\)个节点的二叉树个数,\(tot_i\)为所有\(i\ ...

  5. 【BZOJ4196】[NOI2015] 软件包管理器(树链剖分)

    点此看题面 大致题意: 有\(n\)个软件包,它们的依赖关系形成一棵树.现在,问你安装或卸载一个软件包,会影响多少个软件包的安装状态. 树链剖分 这道题应该是 树链剖分 算法比较入门的题目吧. 对于安 ...

  6. 二叉搜索树(BST)学习笔记

    简介 二叉搜索树(\(Binary\ Search\ Tree\)),简称\(BST\),用于在一个集合中查找元素. 性质 若它的左子树不为空,则左子树上所有节点的值都小于根节点的值 若它的右子树不为 ...

  7. Flutter /bin/sh: /packages/flutter_tools/bin/xcode_backend.sh: No such file or directory

    自己写项目中遇到的一个问题, 可以出来是路径找不到,应该是FLUTTER_ROOT这个全局变量没有取到值的原因 1.检查xcode_backend.sh 是否真的存在 2.网上说的:Target -& ...

  8. python_62_装饰器5

    import time def timer(func): #timer(test1) func=test1 def deco(*args,**kwargs): start_time=time.time ...

  9. Springboot端口设置

    application.properties 加入 server.port=80

  10. vue学习之路 - 3.基本操作(中)

    基本操作(中) 本章节主要介绍:vue的条件渲染.列表渲染,计算属性和侦听器 条件渲染和列表渲染 条件渲染主要使用到了 v-if 指令,列表渲染主要使用了 v-for 指令. 下面介绍 v-if .  ...