파 이 썬 으로 영웅 연맹 피부 원 화 를 가 져 오 는 법 을 알려 드릴 게 요.

추리 원리
1.먼저'리그 오 브 레 전 드'홈 페이지 에서 영웅 과 피부 사진 을 찾 아 보 자.
http://lol.qq.com/data/info-heros.shtml
在这里插入图片描述
2.위의 사이트 에서 모든 영웅 이 있 는 것 을 볼 수 있 습 니 다.F12 를 누 르 면 소스 코드 를 볼 수 있 습 니 다.영웅 과 피부 사진 이 직접 제시 되 지 않 고 JS 파일 에 숨겨 져 있 음 을 알 수 있 습 니 다.이 럴 때 Network 를 켜 고 js 창 을 찾 아 웹 페이지 를 새로 고침 하면 champion.js 옵션 을 볼 수 있 습 니 다.클릭 하면 사전 을 볼 수 있 습 니 다.그 안에 모든 영웅 의 이름(영어)과 해당 하 는 번호 가 포함 되 어 있 습 니 다.
在这里插入图片描述
3.그러나 영웅 의 이름(영어)과 해당 하 는 번호 만 있 으 면 그림 주 소 를 찾 을 수 없다.그래서 홈 페이지 로 돌아 가 영웅 을 마음대로 누 르 고 페이지 를 돌 린 후에 영웅 과 피부의 그림 이 모두 있 는 것 을 발견 했다.그러나 다운로드 하려 면 원래 의 주 소 를 찾 아야 한다.이것 은 마우스 우 클릭 으로'새 탭 에서 열기'를 선택 하 는 것 이다.새로운 홈 페이지 가 바로 그림 의 원래 주소 이다.
在这里插入图片描述
4.그림 에서 빨간색 상 자 는 우리 가 필요 로 하 는 그림 주소 이다.분석 을 통 해 알 수 있 듯 이 모든 영웅 과 피부의 주 소 는 번호 만 다르다http://ossweb-img.qq.com/images/lol/web201310/skin/big266000.jpg.이 번 호 는 6 명 이 고 앞의 3 명 은 영웅 을 나타 내 며 뒤의 3 명 은 피 부 를 나타 낸다.방금 찾 은 js 파일 에는 마침 영웅 의 번호 가 있 고 피부의 인 코딩 은 스스로 정의 할 수 있 습 니 다.어차피 영웅 마다 피부 가 20 개 를 넘 지 않 고 조합 하면 됩 니 다.
在这里插入图片描述
추리 코드
STEP 1:js 사전 가 져 오기

def path_js(url_js):
    res_js = requests.get(url_js, verify = False).content
    html_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])
    return dict_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
在这里插入图片描述
STEP 4:데이터 다운로드 및 저장

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
다섯 번 째 단계:주 프로그램 실행

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)
실행 후 콘 솔 에서 모든 그림 의 주 소 를 출력 합 니 다:
在这里插入图片描述
폴 더 에서 그림 이 다운 로드 된 것 을 볼 수 있 습 니 다.
그림:
在这里插入图片描述
파 이 썬 으로 영웅 연맹 피부 원 화 를 가 져 오 는 방법 을 알려 드 리 는 이 글 은 여기까지 입 니 다.더 많은 파 이 썬 피부 콘 텐 츠 는 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

좋은 웹페이지 즐겨찾기