wildpants 发表于 2020-2-29 16:52:54

简单爬虫,爬取王者荣耀英雄皮肤

本帖最后由 一个账号 于 2020-3-26 09:59 编辑

import urllib.request
import re
import random
import os
import time

def url_open(url):
    '''
    listip = ['117.94.213.165:8118','119.179.136.97:8060','114.228.73.217:6666']
   
    proxy_support = urllib.request.ProxyHandler({'http':random.choice(listip)})

    opener = urllib.request.build_opener(proxy_support)
    opener.addheaders = [('User-Agent',' Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36')]
    urllib.request.install_opener(opener)
    '''
    #这一部分使用的代理,我用着太慢,就没使了
    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/78.0.3904.108 Safari/537.36')
    response = urllib.request.urlopen(req)
    html = response.read()
    return html

def make_file(url):
    html = url_open(url).decode('gbk')
    a = html.find("cover-name") + 12
    b = html.find('</h2>')
    name = html
    os.mkdir(name)
    os.chdir(name)
    save_hero(url)
    os.chdir(path = "..")

def save_hero(url):
    html = url_open(url).decode("gbk")
    a = re.findall(r'game.gtimg.cn/.+hero-info/\d{3}/\d{3}-bigskin-.\.jpg',html)
    a = a
    for i in range(1,7):
      a = a[:67] + str(i) + a
      img_url = "http://" + a
      file_name = img_url.split('/')[-1]
      try:
            imghtml = url_open(img_url)
            with open(file_name,'wb') as f:
                f.write(imghtml)
      except:
            break
   

   
def heropic(folder = 'herolist'):
    os.mkdir(folder)
    os.chdir(folder)
   
    url = 'https://pvp.qq.com/web201605/herolist.shtml'
    html = url_open(url).decode("gbk")
    herolist = re.findall(r'herodetail/\d\d\d\.shtml',html)
    herodetail = []
    for i in range(len(herolist)):
      herodetail.append( 'https://pvp.qq.com/web201605/' + herolist)
    for j in range(len(herodetail)):
      make_file(herodetail)

if __name__ == "__main__":
    heropic()

模仿着小甲鱼的爬虫写了一下,可能有一些代码冗余

还有就是在源代码没看到前五个英雄的链接,所以只能爬93个英雄的皮肤

关于这点我也不知道咋办,希望有大佬指导下

wwdfq 发表于 2020-2-29 18:36:25

嘻嘻嘻嘻嘻嘻嘻学习

su9910 发表于 2020-2-29 18:55:47

楼主无敌于世间

霸气的替加环素 发表于 2020-2-29 19:07:05

小白路过,学习学习

zenglxiao 发表于 2020-2-29 19:48:45

新手上路学习学习

zzzmade1 发表于 2020-2-29 21:37:55

666

EDX 发表于 2020-3-2 10:11:54

学习的狗子 发表于 2020-3-2 10:52:39

呃呃呃呃呃

hy200107 发表于 2020-3-2 16:46:59

学习学习

Jawet 发表于 2020-3-2 19:34:35

瞅一瞅

蟒蛇菌 发表于 2020-3-2 21:10:10

想见识一下

hoholeilyy0312 发表于 2020-3-2 21:26:15

涨涨见识

guano 发表于 2020-3-2 21:57:53

{:10_254:}{:10_254:}

Yangzb 发表于 2020-3-2 23:32:49

看看拉

overxxss 发表于 2020-3-2 23:56:24

学习学习

阿迪克斯的女儿 发表于 2020-3-3 00:22:36

学习

loveQQW 发表于 2020-3-8 11:53:24

无敌

15972156903 发表于 2020-3-8 12:08:08

厉害啊

寂静偶 发表于 2020-3-8 13:33:28

回复学习学习

夏夜飞雪 发表于 2020-3-8 13:42:28

是只能看的那种吗
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 简单爬虫,爬取王者荣耀英雄皮肤