記一次查深圳磨房百公里徒步照片歷程


序言

       本屆百公里徒步本來是定在4月20、21兩天舉行的,后遇天氣原因就往后推延了,也正因此原因,在20日有其他事情本來不能參加本屆活動的情況下又有幸參加了。

       這是我第一次參加磨房百公里活動,在活動前,沒有這么遠距離的徒步經歷,不清楚自己能走多遠,和同伴分析了路線,結合自己平日的步行速度,定了在東部華僑城下撤的目標,大概50KM,下午5、6點左右就能到達,如此,下撤后也方便各自回去。

      當天活動,太陽很大,天氣很熱,從梧桐山到二簽小三洲這段又有很多上坡,記得有一個長坡,休息了兩次才爬上去,走得還是比較辛苦的。最后在下午6點半左右到達了雲海谷體育公園下撤點。

 

正文

       周五(2019年5月24日)晚八點,磨房深圳百公里公眾號推來消息:官方相冊已上線。心里美滋滋的(PS:這下可看到我帥氣身影了,哈哈^_^),下班回來立馬進入公眾號開始[尋圖之旅],進入后提示可以上傳本人靚照進行AI人臉識別匹配(哇,這么貼心,高科技都用上了)。於是乎,按着指引進行了一番操作......

 

沒有?還是沒有匹配到?不會這么不着攝影師待見吧~

那我還怎么發朋友圈呀?[**一臉快哭的表情]

想辦法......

難道要這么一頁頁一張張翻下去看嗎?[奔潰~]

 

266頁,6K+張照片,得要找到什么時候呀?

然而,有辦法嗎?有辦法嗎?

悲催的我就這樣很無助的一頁一頁像鑒黃師認真負責的鑒定沒一張照片,看不清的還要點進去看大圖......

【現在是晚上11:30,小度提醒您,該睡覺了】

看了下進度,才五十多頁,啥感覺不想提了(鑒黃師:看到身體就想吐),洗洗睡吧~

 

次日,又是大好天氣,去超市里采購了排骨、鯉魚等菜食回來給周末的自己來頓美食。美滋滋的享用完午餐后,看檔綜藝節目《向往的生活》休閑一下。

看着這休閑自在的田園生活,又勾起了我對美照注意力:要不把全部圖片下載到本地看吧,直接大圖,應該會更快。

說干就干,然后用Python寫了一段簡單的腳本把官方提供的所有照片都下載到本地了:

 

看了兩集《向往的生活》,圖片也全部下載完成了,一眼可以瞄12張大圖,確實比之前方便多了。當然后,下載到本地后還得靠肉眼搜索~

結果

真沒有,是真的連個背影都沒有[抓狂]😫

攝影師呀,你咋地了......

以下附本次爬取照片源碼:

 

import requests
from requests.exceptions import ReadTimeout,HTTPError,RequestException
import re
from bs4 import BeautifulSoup
import os
import urllib.request
import urllib.parse
import string
import time

#爬取圖片URL信息數據
def CrawImgInfo(req_url):
    resultdata=[]
    headers={"content-type":"text/html; charset=utf-8"}
    try:
        res=requests.get(req_url,headers=headers)
        if res.status_code==200:
            html=BeautifulSoup(res.text,"html.parser")
            #選取所有照片HTML
            imgItems=html.select(".mdui-container-fluid div.mdui-row-gapless div.mdui-col-xs-4")
            for item in imgItems:
                #獲取大圖信息頁面URL
                imginfo_url=item.select("a")[0].attrs["href"]
                resultdata.append(imginfo_url)
        else:
            print("fail")

    except ReadTimeout:
        print("timeout")
    except HTTPError:
        print("HttpError")
    except RequestException:
        print("httpError") 

    return resultdata

#獲取圖片的URL
def CrawImgUrl(req_url):
    imgurl=""
    headers={"content-type":"text/html; charset=utf-8"}
    try:
        res=requests.get(req_url,headers=headers)
        if res.status_code==200:
            html=BeautifulSoup(res.text,"html.parser")
            #獲取大圖的URL
            imgurl=html.select(".mdui-container-fluid div.mdui-row-gapless a")[0].attrs["href"]
        else:
            print("fail")

    except ReadTimeout:
        print("timeout")
    except HTTPError:
        print("HttpError")
    except RequestException:
        print("httpError") 
    return imgurl

#寫入數據,保存到本地
def SaveImg(filepath,imgurl):
    #URL含中文,需要編碼
    imgurl_encode=urllib.parse.quote(imgurl,safe=string.printable)
    try:
        resp=urllib.request.urlopen(imgurl_encode)
        imgname=imgurl.split("/")[-1]
        if resp.code==200:
            img=resp.read()
            imgfilename=filepath+imgname
            with open(imgfilename,"wb") as f:
                f.write(img)
    except urllib.error.HTTPError as e:
        print("The server conldn\'t fulfill the request.")
    except urllib.error.URLError as e:
        print('We failed to reach a server.')


def GetData():
    rootUrl="網站地址"
    pageUrl="翻頁地址"
    #實際總頁數加1
    pageCount=267
    
    savePath="本地存儲地址"
    imgCount=0
    for pageIndex in range(1,pageCount):
        req_url=pageUrl+str(pageIndex)
        curpage_imginfos=CrawImgInfo(req_url)
        if len(curpage_imginfos)>0:
            for item in curpage_imginfos:
                imgUrl=CrawImgUrl(rootUrl+item)
                if len(imgUrl)>0:
                    SaveImg(savePath,imgUrl)
                    imgCount=imgCount+1
                    print("圖片:%s 下載完成!(下載總數:%s|%s/%s)" %(imgUrl,imgCount,pageIndex,pageCount-1))
                #暫停指定秒數,對服務器要溫柔一些
                time.sleep(1)
         

if __name__ == '__main__':
    GetData()

 


免責聲明!

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



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