python爬蟲王者榮耀高清皮膚大圖背景故事通用爬蟲

wzry-spider

python通用爬蟲-通用爬蟲爬取靜態網頁,面向小白

基本上純python語法切片索引,少用到第三方爬蟲網絡庫

這是一隻小巧方便,強大的爬蟲,由python編寫

主要實現了:

1.爬取高清皮膚大圖

2.爬取全部英雄背景故事

所需的庫有

    1. requests 只用來發送請求和保存二進制文件

純python爬蟲,利用python索引切片文件讀寫不依賴第三方網絡爬蟲庫實現硬核爬蟲

完整項目放在GitHub:https://github.com/Ymy214/meizitu-spider

具體實現思路:

    1. 分析網頁源代碼結構
    1. 找到合適的入口
    1. 窮舉訪問並解析
    1. 爬取全部英雄全部皮膚圖片

代碼思路/程序流程:

我分析王者榮耀網站上面的英雄資料庫發現全部英雄的頁面基本上都是連貫的,而且仍是偏向與靜態網頁沒有過多的JavaScript渲染,因此比較適合來一波窮舉遍歷爬蟲,可是速度也很快。利用python語法字符串操做,列表操做,字典操做等等循環遍歷英雄頁面利用python列表切片索引和字符串拼接等等方法來解析HTML獲得皮膚圖片連接和背景故事文本,將皮膚圖片二進制文件保存爲png高清大圖,將全部英雄背景故事合併保存爲文本文檔html

下面是功能以及效果展現

總體展現

爬取效果展現-豐功偉績

爬取效果展現-碩果累累

背景故事

全部圖片連接寫入文本文件

代碼展現

王者榮耀【皮膚高清大圖爬蟲】源代碼以下

#!/usr/bin/env python
# -*- encoding: utf-8 -*-

import requests
fo = open('./wzry-jpg/wzry-pf.txt', 'w')


path = './wzry-jpg/'
ls = []     
for i in range(105,200):
    url = "http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{0}/{0}-bigskin-1.jpg".format(i)
    status_code = requests.request('get', url).status_code
    if status_code != 200:
        continue
    for j in range(1, 9):
        imgurl = url[:-5] + '{}.jpg'.format(j)
        response = requests.request('get', imgurl)
        if response.status_code != 200:            
            continue
        ls.append(imgurl)
        ##下載
        print("開始下載第{}-{}個英雄皮膚圖片>>>".format(i,j), end='')
        with open(path+str(i)+'-'+str(j)+'.png', 'wb') as f:
            f.write(response.content)
            print('======下載完成======')

    
for i in range(501,516):
    url = "http://game.gtimg.cn/images/yxzj/img201606/skin/hero-info/{0}/{0}-bigskin-1.jpg".format(i)
    status_code = requests.request('get', url).status_code
    if status_code != 200:
        continue
    for j in range(1, 9):
        imgurl = url[:-5] + '{}.jpg'.format(j)
        response = requests.request('get', imgurl)
        if response.status_code != 200:            
            continue
        ls.append(imgurl)
        ##下載
        print("開始下載第{}-{}個英雄皮膚圖片>>>".format(i,j), end='')
        with open(path+str(i)+'-'+str(j)+'.png', 'wb') as f:
            f.write(response.content)
            print('======下載完成======')
##print(ls)
        
##鏈接寫入txt文件
for line in ls:
    fo.write(line+'\n')
fo.close()

王者榮耀【英雄背景故事爬蟲】源代碼以下

#!/usr/bin/env python
# -*- encoding: utf-8 -*-

import requests
fo = open('R:/python123全國等考/wzry-jpg/pop-bd.txt', 'w')


ls = []     
for i in range(105,200):
    url = "https://pvp.qq.com/web201605/herodetail/{}.shtml".format(i)
    r = requests.request('get', url)
    if r.status_code != 200:
        continue
    r.encoding = 'gbk'
    name = r.text.split('cname')[1].split(',')[0].split("'")[1]
    text = r.text.split('pop-bd')[1].split('p>')[1][:-2]
    print("開始保存第{}個英雄背景故事>>>".format(i))
    fo.write('【'+name+'】'+'\n'+text+'\n'+'-'*30)

for i in range(501,516):
    url = "https://pvp.qq.com/web201605/herodetail/{}.shtml".format(i)
    r = requests.request('get', url)
    if r.status_code != 200:
        continue
    r.encoding = 'gbk'
    name = r.text.split('cname')[1].split(',')[0].split("'")[1]
    text = r.text.split('pop-bd')[1].split('p>')[1][:-2]
    print("開始保存第{}個英雄背景故事>>>".format(i))
    fo.write('【'+name+'】'+'\n'+text+'\n'+'-'*30)

##鏈接寫入txt文件

fo.close()

另外本人還有面下給小白的

    1. 反防盜鏈爬取妹子圖
    1. 王者榮耀背景故事爬蟲

歡迎學習支持

有用或幫到你的話不妨點個star我將感激涕零

相關文章
相關標籤/搜索