爬蟲練習(xí):抓取lol各英雄圖片并保存在本地

第一個爬蟲項目


image.png
  • 周末花了點時間學(xué)習(xí)爬蟲,果然還是挺難的(To me。。),不得不說,其中還是有許多坑在里面,比如你要理解網(wǎng)頁里各個部分的構(gòu)成,找到你所需要的東西,然后用正則表達(dá)式將其匹配出來,一個經(jīng)典的笑話:
    當(dāng)你有一個困難,你發(fā)現(xiàn)用正則表達(dá)式可以解決這個困難的時候,好了,這下你就會有兩個困難了..,正則表達(dá)式入門的確不難,但要掌握或者是熟練他的確需要很多腦筋,跟著教程學(xué)了一遍,做了第一個小項目,不大,主要是入門來練習(xí)下,后面本來想爬教務(wù)處里各個老師的信息的,結(jié)果竟然要VPN,我輸入之后從python里爬取好像還訪問不了,exm?不過也可能是我哪里寫錯了,下次再試試。
  • 挺郁悶的,就這樣個小項目竟然花了整整兩天,本來還打算周末出去玩玩的,因為眼睛不知道怎么回事這一周都有點看不清,可能是對著屏幕看太多了,看來要注意點了,把眼睛整壞就不好了.


    image.png

代碼

  • 導(dǎo)入模塊,主要是要request模塊,貌似美麗湯(beautifulsoup)也挺厲害,有時間看看
import re
import urllib.request
import os
import ssl
  • 訪問網(wǎng)頁
def open_url(url):
    req = urllib.request.Request(url)
    req.add_header("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36")
    response = urllib.request.urlopen(req,context=context)
    html = response.read()
    return html
  • 抓取圖片連接,這里有點問題,應(yīng)該是我正則寫的不是很好,抓出來不知道為什么始終返回的兩端帶有雙引號,所以后面用循環(huán)去掉了兩端的引號,也算不夠簡潔吧。
def get_img(html):
    p = r'src=("http[^"]+?\.[ipg|png]+")'
    html = html.decode("GBK")
    img_list = re.findall(p,html)
    for num,value in enumerate(img_list):
        img_list[num] = value[1:len(value)-1]
    return (img_list)
  • 保存抓取的圖片到本地,這次練習(xí)的不大,只有122張圖片,所以感覺還行,不知道跑大樣本數(shù)據(jù)電腦帶不帶的動
def save_img(folder,img_list):

    for each in img_list:
        filename = each.split("/")[-1]

        with open(filename,"wb") as f:
            img = open_url(each)
            f.write(img)
  • 創(chuàng)建一個文件夾來保存圖片
def document_lol(folder = "lolpic"):
    os.mkdir(folder)
    os.chdir(folder)
    url = "http://lol.52pk.com/hero/"
    img_list = get_img(open_url(url))
    save_img(folder,img_list)



if __name__ == "__main__":
    context = ssl._create_unverified_context()
    document_lol()

最后貼一張爬完的結(jié)果


image.png

OK,不是很好的開頭,接下來可以試著多做幾個簡單的練習(xí)之后再去爬一些網(wǎng)站抓取有用的數(shù)據(jù)來分析,(爬一下拉鉤網(wǎng)上招聘信息,鏈家的房租信息等)不過可能反爬機(jī)制那部分又要折騰很久。不得不說,當(dāng)你每次高高興興以為自己code沒問題的時候去運行,結(jié)果莫名其妙跑出一些BUG真的很氣人啊,有時候氣的想砸桌子。。。


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,901評論 25 709
  • 爬蟲文章 in 簡書程序員專題: like:128 - Python 爬取落網(wǎng)音樂 like:127 - 【圖文詳...
    treelake閱讀 29,744評論 33 638
  • 父親節(jié)赴重慶的偏巖古鎮(zhèn)的百年神樹許愿心: 百年神樹神樹神, 座座廟宇若比鄰。 抽簽算掛看手相, 燒香求佛擠滿門。 ...
    一葉知秋99閱讀 893評論 1 7
  • 走在回家的路上 那是多么遙遠(yuǎn)的夢 空氣里只有沉默 我可以聽到那些聲音 沒有終點 只是越來越近 是誰在吶喊 你說你愛...
    布老頭和他的家人們閱讀 319評論 2 1
  • 運營喵剛進(jìn)入一家公司,是由新人小白的身份開始從零做起的,這個階段就是幼兒期。那么他就要先做執(zhí)行,打雜,跑腿的事,什...
    駝鈴星閱讀 225評論 0 0

友情鏈接更多精彩內(nèi)容