python爬取推背圖圖片

最近在自學python,嘗試一下它的爬蟲功能。於是腦袋一熱就像把網頁上的推背圖的圖片都爬下來放一個文件夾裏。於是就有了下面的代碼。

注:本教程只做學習交流使用,下載的圖片只是本地查看,未做他用,如有侵權,還請站長私信我,我會刪除本篇博客。

 1.找到需要爬取的網頁

 百度“推背圖”,在搜索結果裏有一個推背圖圖片的網站,果斷點擊。個人理解,所謂的爬蟲,就是先找到目標網站的入口,然後根據規律爬取想要的內容。網頁的網址如爲:http://www.tuibt.com/

 

2.發現爬取內容的規律

點擊每一個卦象的內容,發現地址是按順序增長的,所以就好辦了。

for num in range(1, 61):
    #請求網頁
    pageTuibei = requests.get("http://www.tuibt.com/tuibeitu/" + str(num) + ".html", proxies=proxy_dict)

3.截取需要的內容

根據返回的頁面數據,找到我們需要的內容,這裏我需要一個圖片的地址和圖片名稱,直接解析即可(因爲邏輯簡單,直接按字符串截取)

 #頁面源碼裏的編碼是gb2312,若不指定,中文會出現亂碼
    pageTuibei.encoding = "gb2312"
    #獲取頁面的源碼
    mainStr = pageTuibei.text
    #截取我們需要的信息的部分
    mainStr = mainStr[mainStr.find("<P align=center><IMG height="):]
    mainStr = mainStr[:mainStr.find("<BR>")]
    #截取出圖片路徑
    imgSource = mainStr[mainStr.find("\"")+1:mainStr.find("\" width")]
    #截取出圖片名稱
    imgName = mainStr[mainStr.find("alt=")+4:mainStr.find(" src")]

4.下載到本地

剩下的事就是將圖片下載到本地了。直接將源碼都附上吧,我用的是公司的網,所以要使用到代理,正常的網絡是不需要配置的

import requests
proxy_dict = {
    "http": "http://*****:*****@proxy.*****.com:8080/",
    "https": "http://*****:*****@proxy.*****.com:8080/"
}
#推背圖共60張,所以循環60次
for num in range(1, 61):
    #請求網頁
    pageTuibei = requests.get("http://www.tuibt.com/tuibeitu/" + str(num) + ".html", proxies=proxy_dict)
    #頁面源碼裏的編碼是gb2312,若不指定,中文會出現亂碼
    pageTuibei.encoding = "gb2312"
    #獲取頁面的源碼
    mainStr = pageTuibei.text
    #截取我們需要的信息的部分
    mainStr = mainStr[mainStr.find("<P align=center><IMG height="):]
    mainStr = mainStr[:mainStr.find("<BR>")]
    #截取出圖片路徑
    imgSource = mainStr[mainStr.find("\"")+1:mainStr.find("\" width")]
    #截取出圖片名稱
    imgName = mainStr[mainStr.find("alt=")+4:mainStr.find(" src")]
    # 讀取圖片
    imgByte = requests.get(imgSource,proxies=proxy_dict)
    # 將圖片寫入文件夾內
    with open("tbt/"+imgName+".jpg", "wb") as file:
        print("下載圖片"+imgName)
        file.write(imgByte.content)

整個功能寫完,算上註釋都沒到30行,我發現我有點喜歡上這個東西了。

5.發個效果圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章