我用Python爬取英雄聯(lián)盟的皮膚澎语,隔壁家的小弟弟都饞哭了

一固蛾、推理原理

1.先去《英雄聯(lián)盟》官網(wǎng)找到英雄及皮膚圖片的網(wǎng)址:

http://lol.qq.com/data/info-h

2.從上面網(wǎng)址可以看到所有英雄都在,按下F12查看源代碼,發(fā)現(xiàn)英雄及皮膚圖片并沒有直接給出余黎,而是隱藏在JS文件中奠滑。這時候需要點開Network,找到js窗口室抽,刷新網(wǎng)頁晴竞,就看到一個champion.js的選項,點擊可以看到一個字典——里面就包含了所有英雄的名字(英文)以及對應的編號狠半。

3.但是只有英雄的名字(英文)以及對應的編號并不能找到圖片地址噩死,于是回到網(wǎng)頁,隨便點開一個英雄神年,跳轉頁面后發(fā)現(xiàn)英雄及皮膚的圖片都在已维,但要下載還需要找到原地址,這是鼠標右擊選擇“在新標簽頁中打開”已日,新的網(wǎng)頁才是圖片的原地址垛耳。

4.圖中紅色框就是我們需要的圖片地址,經(jīng)過分析知道:每一個英雄及皮膚的地址只有編號不一樣(ossweb-img.qq.com/images/lol/…

二飘千、推理代碼

第一步:獲取js字典

defpath_js(url_js):res_js=requests.get(url_js,verify=False).contenthtml_js=res_js.decode("gbk")pat_js=r'"keys":(.*?),"data"'enc=re.compile(pat_js)list_js=enc.findall(html_js)dict_js=eval(list_js[0])returndict_js復制代碼

第二步:從 js字典中提取到key值生成url列表

def path_url(dict_js):

? ? pic_list = []

? ? for key in dict_js:

? ? ? ? for i in range(20):

? ? ? ? ? ? xuhao = str(i)

? ? ? ? ? ? if len(xuhao) == 1:

? ? ? ? ? ? ? ? num_houxu = "00" + xuhao

? ? ? ? ? ? elif len(xuhao) == 2:

? ? ? ? ? ? ? ? num_houxu = "0" + xuhao

? ? ? ? ? ? numStr = key+num_houxu

? ? ? ? ? ? url = r'http://ossweb-img.qq.com/images/lol/web201310/skin/big'+numStr+'.jpg'

? ? ? ? ? ? pic_list.append(url)

? ? print(pic_list)

? ? return pic_list

復制代碼

第三步:從 js字典中提取到value值生成name列表

def name_pic(dict_js, path):

? ? list_filePath = []

? ? for name in dict_js.values():

? ? ? ? for i in range(20):

? ? ? ? ? ? file_path = path + name + str(i) + '.jpg'

? ? ? ? ? ? list_filePath.append(file_path)

? ? return list_filePath

復制代碼

第四步:下載并保存數(shù)據(jù)

def writing(url_list, list_filePath):

? ? try:

? ? ? ? for i in range(len(url_list)):

? ? ? ? ? ? res = requests.get(url_list[i], verify = False).content

? ? ? ? ? ? with open(list_filePath[i], "wb") as f:

? ? ? ? ? ? ? ? f.write(res)

? ? except Exception as e:

? ? ? ? print("下載圖片出錯,%s" %(e))

? ? ? ? return False

復制代碼

第五步:執(zhí)行主程序

if __name__ == '__main__':

? ? url_js = r'http://lol.qq.com/biz/hero/champion.js'

? ? path = r'./data/'? #圖片存在的文件夾

? ? dict_js = path_js(url_js)

? ? url_list = path_url(dict_js)

? ? list_filePath = name_pic(dict_js, path)

? ? writing(url_list, list_filePath)

復制代碼

運行后會在控制臺打印出每一張圖片的網(wǎng)址:

在文件夾中可以看到圖片已經(jīng)下載好 如圖:

本次講解就到這里了堂鲜, 如果覺得講的不錯的話, 點贊收藏關注一波护奈, 持續(xù)更新中

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末缔莲,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子霉旗,更是在濱河造成了極大的恐慌痴奏,老刑警劉巖蛀骇,帶你破解...
    沈念sama閱讀 221,888評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異读拆,居然都是意外死亡擅憔,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,677評論 3 399
  • 文/潘曉璐 我一進店門檐晕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來暑诸,“玉大人,你說我怎么就攤上這事辟灰「鲩牛” “怎么了?”我有些...
    開封第一講書人閱讀 168,386評論 0 360
  • 文/不壞的土叔 我叫張陵伞矩,是天一觀的道長笛洛。 經(jīng)常有香客問我,道長乃坤,這世上最難降的妖魔是什么苛让? 我笑而不...
    開封第一講書人閱讀 59,726評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮湿诊,結果婚禮上狱杰,老公的妹妹穿的比我還像新娘。我一直安慰自己厅须,他們只是感情好仿畸,可當我...
    茶點故事閱讀 68,729評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著朗和,像睡著了一般错沽。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上眶拉,一...
    開封第一講書人閱讀 52,337評論 1 310
  • 那天千埃,我揣著相機與錄音,去河邊找鬼忆植。 笑死放可,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的朝刊。 我是一名探鬼主播耀里,決...
    沈念sama閱讀 40,902評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拾氓!你這毒婦竟也來了冯挎?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,807評論 0 276
  • 序言:老撾萬榮一對情侶失蹤痪枫,失蹤者是張志新(化名)和其女友劉穎织堂,沒想到半個月后叠艳,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體奶陈,經(jīng)...
    沈念sama閱讀 46,349評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡易阳,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,439評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吃粒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片潦俺。...
    茶點故事閱讀 40,567評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖徐勃,靈堂內(nèi)的尸體忽然破棺而出事示,到底是詐尸還是另有隱情,我是刑警寧澤僻肖,帶...
    沈念sama閱讀 36,242評論 5 350
  • 正文 年R本政府宣布肖爵,位于F島的核電站,受9級特大地震影響臀脏,放射性物質(zhì)發(fā)生泄漏劝堪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,933評論 3 334
  • 文/蒙蒙 一揉稚、第九天 我趴在偏房一處隱蔽的房頂上張望秒啦。 院中可真熱鬧,春花似錦搀玖、人聲如沸余境。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,420評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芳来。三九已至,卻和暖如春猜拾,著一層夾襖步出監(jiān)牢的瞬間即舌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,531評論 1 272
  • 我被黑心中介騙來泰國打工关带, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留侥涵,地道東北人。 一個月前我還...
    沈念sama閱讀 48,995評論 3 377
  • 正文 我出身青樓宋雏,卻偏偏與公主長得像芜飘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子磨总,可洞房花燭夜當晚...
    茶點故事閱讀 45,585評論 2 359

推薦閱讀更多精彩內(nèi)容