码迷,mamicode.com
首页 > 编程语言 > 详细

用python批量下载贴吧图片 附源代码

时间:2016-04-03 15:47:48      阅读:156      评论:0      收藏:0      [点我收藏+]

标签:

 

环境: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.觉得好用的同学别忘了点推荐哦!

 1 #! /usr/bin/env python
 2 #coding=utf-8
 3 
 4 import re,time
 5 import urllib2,urllib
 6 
 7 
 8 def tiebaImgiDownloader(url):
 9   ‘‘‘
10   贴吧jpg格式图片下载器:
11   形式参数某吧某帖子的url地址
12   运行后将保存图片到本目录
13   ‘‘‘
14 
15   pattern = rimg class="BDE_Image" .*?src="(.*?jpg)"#待爬取链接的正则表达式
16   fstr = urllib2.urlopen(url).read()#读取帖子网页源代码为str传给fstr
17   urllist =  re.findall(pattern,fstr)#爬取所有与正则表达式匹配的jpg链接,并保存在urllist中
18   urllist = list( set(urllist) )
19 
20   print 总共爬取%d个图片链接%len(urllist),\n
21 
22   i = 1
23   for furl in urllist:
24     timestr = time.strftime(%Y%m%d%H%M%S)
25     urllib.urlretrieve(furl,timestr+0%d.jpg%i)#逐个下载图片,并命名为当前时间+序数
26     print 已保存图片,timestr+0%d.jpg\n%i
27     i+=1
28 
29   print  图片下载完毕!\n\n\n
30 
31   return True
32 
33 
34 def __main__():
35   print \n\t\t\t欢迎使用贴吧jpg格式图片下载器!\n
36 
37   html = urllib.urlopen(‘‘).read()  # 读取某吧某页的网页源代码  。。。。。。。。。。。。。。。。。粘贴网址区。。。。。。。。。。。。。。。。。。。。。。。。。。。。
38   ‘‘‘网址示例
39   1.http://tieba.baidu.com/f?kw=%BE%CF%E6%BA%B5t&fr=ala0&loc=rec小鞠
40   2.http://tieba.baidu.com/f?kw=%E9%9E%A0%E5%A9%A7%E7%A5%8E&ie=utf-8&pn=200小鞠
41   3.http://tieba.baidu.com/f?kw=%E5%A3%81%E7%BA%B8&ie=utf-8&tab=good精品壁纸
42   ‘‘‘
43   pattern = ra href="(.p.[0-9]*)"  # 待爬取二级网页网址的正则表达式
44   urllist = re.findall(pattern, html)  # 抓取所有二级网页网址,返回list
45   urllist = list(set(urllist))  # 删除重复的二级网页网址
46   preurl = rhttp://tieba.baidu.com  # 二级网页网址的前缀网址
47   print 抓取%d个二级网页\n%len( urllist )
48 
49   for urlOne in urllist:
50     tiebaImgiDownloader(preurl + urlOne)  # 下载二级网页中的图片
51 
52   return 0
53 
54 
55 if __name__ == __main__:
56   __main__()

 后记:此文是本人原创,转载请注明出处,谢谢合作

 

用python批量下载贴吧图片 附源代码

标签:

原文地址:http://www.cnblogs.com/woxinfeixiang2015/p/5349828.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!