天天看點

用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__()      

 後記:此文是本人原創,轉載請注明出處,謝謝合作