Python 3 requests 를 이용 하여 웹 페이지 의 원본 코드 를 캡 처 하 는 중국어 난호 문제 (gb 2312 인 코딩 으로 인해 발생)

7297 단어 Python
핵심 문제:
  • meta charset = “gb2312”
  • requests

  • 중국어 난호
  • ×îÐÂÏûÏ¢_¡¶ÃλÃÎ÷ÓΡ·µçÄÔ°æ¹Ù·½ÍøÕ¾

  • 환상 적 인 서 유 홈 페이지 를 예 로 들 면
    웹 페이지http://xyq.163.com/news/index.html
    헤더 부분
    
    <head>
    <meta charset="gb2312" />
    
    <title>    _《    》        -           title>
    <meta name="keywords" content="《    》   ,Q   ,    ,     ,     ,      ,      ,        ,      " />
    <meta name="description" content="《    》   ,         ,        ;3.6     ,271       ,       。        、       !" />
    <meta name="author" content="  ,NetEase Inc." />
    <meta name="copyright" content="  ,NetEase Inc." />
    <meta name="pmid" content="272711" />
    <meta name="editor" content="rosiel" />
    <meta name="designer" content="QQ,rain" />
    <meta name="front-end technicist" content="Django" />
    <meta name="animator" content="hy" />
    <link type="text/css" rel="stylesheet" href="http://res.xyq.netease.com/gw/13v1/css/common.css" media="all" />
    <style>
    .NIE-share1 .NIE-share-more em{top: -17px  !important;}
    style>
    
    
    <script charset="gb2312" src="http://res.nie.netease.com/comm/js/jquery(mixNIE).last.js">script>
    <script charset="gb2312" src="http://res.xyq.netease.com/gw/13v1/js/common.js">script>
    head>

    python 기어 오 르 기 코드
    # -*- coding: utf-8 -*-
    >>> import requests
    >>> url = 'http://xyq.163.com/news/index.html'
    >>> r = requests.get(url)
    >>> data = r.text
    >>> title = data.split('')[1].split(' ')[0]
    >>> print(title)
    ×îÐÂÏûÏ¢_¡¶ÃλÃÎ÷ÓΡ·µçÄÔ°æ¹Ù·½ÍøÕ¾
    >>>

    해결 방안
    웹 페이지 내용 을 가 져 올 때 원본 파일 을 latin 1 인 코딩 (encode 함수 사용) 으로 디 코딩 하여 gbk 인 코딩 (decode 함 수 를 사용 하면 정확 한 중국 어 를 출력 할 수 있 습 니 다.
    # -*- coding: utf-8 -*-
    >>> import requests
    >>> url = 'http://xyq.163.com/news/index.html'
    >>> r = requests.get(url)
    >>> data = r.text.encode("latin1").decode("gbk")
    >>> title = data.split('')[1].split(' ')[0]
    >>> print(title)
        _《    》       
    >>>

    좋은 웹페이지 즐겨찾기