Python 파충류 의 Urllib 라 이브 러 리 사용 (1): 페이지 를 기어 오 르 고 저장 하 며 요청 정 보 를 가 져 옵 니 다.

3451 단어 파 이 썬 파충류
import urllib.request

소개
urllib 는 Python 에 내 장 된 HTTP 요청 라 이브 러 리 로 다음 모듈 을 포함 합 니 다.
  • urllib. request: 요청 모듈
  • urllib. error: 이상 처리 모듈
  • urllib. parse: url 분석 모듈
  • urllib. robotparser: robot. txt 분석 모듈
  • 2. 파충류 지정 URL
    with urllib.request.urlopen("http://www.baidu.com") as file:
        data = file.read() #     
        line = file.readline() #     
        lines = file.readlines() #                   

    3. 로 컬 페이지 다운로드
    1. 읽 은 데 이 터 를 파일 에 저장
    with open("./1.html","wb") as f:
        f.write(data)

    2. url retrive 를 사용 하여 로 컬 에 직접 다운로드
    filename = urllib.request.urlretrieve("http://www.baidu.com","./2.html")
    file.info()
    
    

    4. 요청 정보 가 져 오기
    1. 상태 코드 가 져 오기
    file.getcode()
    200
    

    2. url 가 져 오기
    file.geturl()
    'http://www.baidu.com'
    

    3. 머리 정보 가 져 오기
    file.getheaders()
    [('Date', 'Mon, 09 Apr 2018 17:11:24 GMT'),
     ('Content-Type', 'text/html; charset=utf-8'),
     ('Transfer-Encoding', 'chunked'),
     ('Connection', 'Close'),
     ('Vary', 'Accept-Encoding'),
     ('Set-Cookie',
      'BAIDUID=4B4DEF37A228ED2722DF818D3F4A6C29:FG=1; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com'),
     ('Set-Cookie',
      'BIDUPSID=4B4DEF37A228ED2722DF818D3F4A6C29; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com'),
     ('Set-Cookie',
      'PSTM=1523293884; expires=Thu, 31-Dec-37 23:55:55 GMT; max-age=2147483647; path=/; domain=.baidu.com'),
     ('Set-Cookie', 'BDSVRTM=0; path=/'),
     ('Set-Cookie', 'BD_HOME=0; path=/'),
     ('Set-Cookie', 'H_PS_PSSID=1430_21090_22160; path=/; domain=.baidu.com'),
     ('P3P', 'CP=" OTI DSP COR IVA OUR IND COM "'),
     ('Cache-Control', 'private'),
     ('Cxy_all', 'baidu+230416a5fbb4a587682dea3e4efe4e59'),
     ('Expires', 'Mon, 09 Apr 2018 17:11:05 GMT'),
     ('X-Powered-By', 'HPHP'),
     ('Server', 'BWS/1.1'),
     ('X-UA-Compatible', 'IE=Edge,chrome=1'),
     ('BDPAGETYPE', '1'),
     ('BDQID', '0xab6114e500016321'),
     ('BDUSERID', '0')]
    

    5. URL 의 특수 문자 처리
    quote 로 인 코딩 하고 unquote 로 디 코딩 합 니 다.
    s = urllib.request.quote("http://www.baidu.com")
    s
    'http%3A//www.baidu.com'
    
    urllib.request.unquote(s)
    'http://www.baidu.com'
    

    좋은 웹페이지 즐겨찾기