爬取百度貼吧圖片(表情包)


  我們在瀏覽百度貼吧時,會看到許多“神圖”,我們想要保存,這個時候我們就會下載到本地,當我們學習了爬蟲之后,就沒有必要一個一個下載了,可以使用爬蟲自動下載全部圖片。

  下面隨便指定一個貼吧頁:http://tieba.baidu.com/p/3242594565,爬取頁面上的圖片。首先對這個帖子進行觀察,我們會發現這個帖子有許多頁,所以就可以使用pn=%d的方法來爬取后面頁數的帖子,然后想到爬取圖片需要機芯進行命名,並把它們保存在本地

 

查看一下要爬取的網址信息:http://tieba.baidu.com/p/3242594565

看下界面,發現有14頁

然后找到要爬取的圖片,查看圖片的地址信息。

這里可以看到圖片地址為:https://imgsa.baidu.com/forum/w%3D580/sign=998a3367c98065387beaa41ba7dca115/6c751b0fd9f9d72a6ac0a634d72a2834349bbb28.jpg

可以使用正則表達式進行爬取 ,可以使用https://imgsa.*?\.jpg的格式。

 

 

然后就是編寫代碼進行爬取了,這里的思路是:

  先獲得網頁的代碼,然后通過網頁代碼獲取圖片,再將圖片命名保存就可以了。

 代碼如下:

import re
import urllib.request


#獲取網址信息
def getHtml(url):        
    page = urllib.request.urlopen(url)
    html = page.read()
    return html

#爬取圖片
def getImg(html):        
    reg = r'src="(https://imgsa.*?\.jpg)"'
    imgre = re.compile(reg)
    imList = re.findall(reg, html.decode('utf-8'))

    #爬取圖片命名
    x=0
    for i in imList:
        print(i)
        print(x)
        urllib.request.urlretrieve(i, '%s.jpg' % x)
        x += 1


#爬取的貼吧網址
url = "http://tieba.baidu.com/p/3242594565?pn="    

#由於貼吧有14頁,爬取的圖片較多,這里先爬取一個網址的圖片,圖片保存在當前文件夾里
for k in range(1, 2):    
    ul = url+str(k)
    print(ul)
    html = getHtml(ul)
    getImg(html)

在Pycharm上運行代碼:

 

 

 查看文件夾,發現新增了下載的圖片,並且都已經命名:

 這樣就成功爬取了貼吧上的圖片。

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM