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

     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 = r'img 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 = r'a href="(.p.[0-9]*)"'  # 待爬取二级网页网址的正则表达式
    44   urllist = re.findall(pattern, html)  # 抓取所有二级网页网址,返回list
    45   urllist = list(set(urllist))  # 删除重复的二级网页网址
    46   preurl = r'http://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__()

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

  • 相关阅读:
    设计模式-状态模式(25)
    设计模式-访问者模式(24)
    设计模式-观察者模式(22)
    设计模式-中介者模式(21)
    设计模式-行为型模式小结(20)
    设计模式-迭代器模式(19)
    Tomcat安装
    MySQL单表查询
    MySQL表操作
    MySQL表的完整性约束
  • 原文地址:https://www.cnblogs.com/woxinfeixiang2015/p/5349828.html
Copyright © 2020-2023  润新知