[Python] 웹 크롤러(4): Opener와 Handler의 소개와 실제 응용
다음 콘텐츠를 시작하기 전에 먼저 urllib2의 두 가지 메소드인 info 및 geturl을 설명하겠습니다.
urlopen이 반환한 응답 개체 response(또는 HTTPError 인스턴스)에는 매우 유용한 두 가지 메소드 info() 및 geturl( )
1.geturl():
이것은 얻은 실제 URL을 반환합니다. urlopen(또는 오프너 개체가 사용하는 것)이 리디렉션이 있을 수 있기 때문에 매우 유용합니다. 획득한 URL은 요청 URL과 다를 수 있습니다.
Renren의 하이퍼링크를 예로 들어 보겠습니다.
원래 URL과 리디렉션된 링크를 비교하기 위해 urllib2_test10.py를 빌드합니다.
from urllib2 import Request, urlopen, URLError, HTTPError old_url = 'http://rrurl.cn/b1UZuP' req = Request(old_url) response = urlopen(req) print 'Old url :' + old_url print 'Real url :' + response.geturl()
실행 후 실제 링크가 가리키는 URL을 볼 수 있습니다:
2.info():
이것은 다음의 사전을 반환합니다. 객체 객체, 이 사전은 획득된 페이지 상황을 설명합니다. 일반적으로 서버에서 보낸 특정 헤더입니다. 현재 httplib.HTTPMessage의 인스턴스입니다.
기본 헤더에는 "콘텐츠 길이", "콘텐츠 유형" 및 기타 콘텐츠가 포함됩니다.
info 적용을 테스트하기 위해 urllib2_test11.py를 빌드합니다.
from urllib2 import Request, urlopen, URLError, HTTPError old_url = 'http://www.baidu.com' req = Request(old_url) response = urlopen(req) print 'Info():' print response.info()
작업 결과는 다음과 같습니다. 페이지 관련 정보 :
urllib2의 두 가지 중요한 개념인 Openers와 Handlers에 대해 이야기해 보겠습니다.
1.Openers:
URL을 얻을 때 오프너(urllib2.OpenerDirector의 인스턴스)를 사용합니다.
일반적으로 우리는 urlopen을 통해 기본 오프너를 사용합니다.
하지만 자신만의 오프너를 만들 수 있습니다.
2.핸들:
오프너는 프로세서 핸들러를 사용하며 모든 "무거운" 작업은 핸들러에 의해 처리됩니다.
각 핸들러는 특정 프로토콜을 통해 URL을 여는 방법이나 URL 열기의 다양한 측면을 처리하는 방법을 알고 있습니다.
HTTP 리디렉션 또는 HTTP 쿠키 등.
특정 핸들러로 URL을 얻으려면 오프너를 생성해야 합니다. 예를 들어 쿠키를 처리하는 오프너를 얻거나 쿠키를 처리하지 않는 오프너를 얻습니다. 리디렉션.
오프너를 생성하려면 OpenerDirector
를 인스턴스화한 다음 .add_handler(some_handler_instance)를 호출하세요.
마찬가지로, 오프너 객체를 생성하는 데 더 편리한 함수인 build_opener를 사용할 수 있습니다. 함수 호출은 하나만 필요합니다.
build_opener는 기본적으로 여러 프로세서를 추가하지만 기본 프로세서를 추가하거나 업데이트하는 빠른 방법을 제공합니다.
프록시, 유효성 검사 및 기타 일반적이지만 다소 특별한 경우를 처리할 수 있는 다른 핸들러입니다.
install_opener는 (전역) 기본 오프너를 만드는 데 사용됩니다. 즉, urlopen을 호출하면 설치된 오프너가 사용됩니다.
Opener 객체에는 open 메소드가 있습니다.
이 방법은 urlopen 함수와 같이 URL을 얻는 데 직접 사용할 수 있습니다. 편의상 일반적으로 install_opener를 호출할 필요는 없습니다.
위의 두 가지 내용을 모두 마친 후, 위에서 언급한 Opener와 Handler가 사용될 기본 인증 내용을 살펴보겠습니다.
기본 인증
핸들러 생성 및 설치를 보여주기 위해 HTTPBasicAuthHandler를 사용하겠습니다.
기본 인증이 필요한 경우 서버에서는 헤더(401 오류 코드)를 전송하여 인증을 요청합니다. 이는 체계와 '영역'을 지정하며 다음과 같습니다. Www-authenticate: SCHEME realm="REALM".
예
Www-authenticate: Basic realm="cPanel Users"
클라이언트는 새 요청을 사용해야 하며 요청 헤더에 올바른 이름과 비밀번호를 포함해야 합니다.
이것은 "기본 인증"입니다. 이 프로세스를 단순화하기 위해 HTTPBasicAuthHandler의 인스턴스를 생성하고 오프너가 이 핸들러를 사용하도록 할 수 있습니다.
HTTPBasicAuthHandler는 비밀번호 관리 개체를 사용하여 URL과 영역을 처리하고 사용자 이름과 비밀번호를 매핑합니다.
서버에서 보낸 헤더에 있는 영역이 무엇인지 알고 있다면 HTTPPasswordMgr을 사용할 수 있습니다.
보통 사람들은 영역이 무엇인지 관심이 없습니다. 이 경우 편리한 HTTPPasswordMgrWithDefaultRealm을 사용할 수 있습니다.
이렇게 하면 URL의 기본 사용자 이름과 비밀번호가 지정됩니다.
특정 렐름에 대해 다른 조합을 제공할 경우 제공됩니다.
add_password에 제공된 영역 매개변수에 None을 지정하여 이러한 상황을 나타냅니다.
가장 높은 수준의 URL이 가장 먼저 확인이 필요한 URL입니다. .add_password()에 전달하는 더 깊은 URL도 똑같이 적합합니다.
말도 안 되는 말을 너무 많이 했는데 위에서 말한 내용을 예시를 통해 보여드리겠습니다.
정보 애플리케이션을 테스트하기 위해 urllib2_test12.py를 빌드합니다.
# -*- coding: utf-8 -*- import urllib2 # 创建一个密码管理者 password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm() # 添加用户名和密码 top_level_url = "http://example.com/foo/" # 如果知道 realm, 我们可以使用他代替 ``None``. # password_mgr.add_password(None, top_level_url, username, password) password_mgr.add_password(None, top_level_url,'why', '1223') # 创建了一个新的handler handler = urllib2.HTTPBasicAuthHandler(password_mgr) # 创建 "opener" (OpenerDirector 实例) opener = urllib2.build_opener(handler) a_url = 'http://www.baidu.com/' # 使用 opener 获取一个URL opener.open(a_url) # 安装 opener. # 现在所有调用 urllib2.urlopen 将用我们的 opener. urllib2.install_opener(opener)
참고: 위의 예에서는 HHTTPasicAuthHandler만 build_opener에 제공합니다.
기본 오프너에는 ProxyHandler, UnknownHandler, HTTPHandler, HTTPDefaultErrorHandler, HTTPRedirectHandler, FTPHandler, FileHandler, HTTPErrorProcessor와 같은 일반 핸들러가 있습니다.
코드의 top_level_url은 실제로 완전한 URL("http:", 호스트 이름 및 선택적 포트 번호 포함)일 수 있습니다.
예: http://example.com/.
은 "권한"(예: 호스트 이름 및 선택적으로 포트 번호)일 수도 있습니다.
예: "example.com" 또는 "example.com:8080".
후자는 포트 번호를 포함합니다.
위는 [Python] Web Crawler(4)의 내용입니다: Opener와 Handler의 소개 및 예제 적용에 대한 자세한 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고하시기 바랍니다. !

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

React와 Python을 사용하여 강력한 웹 크롤러 애플리케이션을 구축하는 방법 소개: 웹 크롤러는 인터넷을 통해 웹 데이터를 크롤링하는 데 사용되는 자동화된 프로그램입니다. 인터넷의 지속적인 발전과 데이터의 폭발적인 증가로 인해 웹 크롤러는 점점 더 대중화되고 있습니다. 이 기사에서는 두 가지 널리 사용되는 기술인 React와 Python을 사용하여 강력한 웹 크롤러 애플리케이션을 구축하는 방법을 소개합니다. 프론트엔드 프레임워크인 React와 크롤러 엔진인 Python의 장점을 살펴보고 구체적인 코드 예제를 제공합니다. 1.

웹 크롤러는 자동으로 웹사이트를 방문하고 그 정보를 크롤링하는 자동화된 프로그램입니다. 이 기술은 오늘날의 인터넷 세계에서 점점 더 일반화되고 있으며 데이터 마이닝, 검색 엔진, 소셜 미디어 분석 및 기타 분야에서 널리 사용됩니다. PHP를 사용하여 간단한 웹 크롤러를 작성하는 방법을 배우고 싶다면 이 문서에서 기본적인 지침과 조언을 제공할 것입니다. 먼저 몇 가지 기본 개념과 기술을 이해해야 합니다. 크롤링 대상 크롤러를 작성하기 전에 크롤링 대상을 선택해야 합니다. 이는 특정 웹사이트, 특정 웹페이지 또는 전체 인터넷일 수 있습니다.

웹 크롤러(웹 스파이더라고도 함)는 인터넷에서 콘텐츠를 검색하고 색인을 생성하는 로봇입니다. 기본적으로 웹 크롤러는 쿼리가 이루어질 때 웹 페이지의 콘텐츠를 검색하기 위해 웹 페이지의 콘텐츠를 이해하는 역할을 합니다.

Vue.js 및 Perl 언어를 사용하여 효율적인 웹 크롤러 및 데이터 스크래핑 도구를 개발하십시오. 최근 인터넷의 급속한 발전과 데이터의 중요성이 증가함에 따라 웹 크롤러 및 데이터 스크래핑 도구에 대한 수요도 증가했습니다. 이러한 맥락에서 Vue.js와 Perl 언어를 결합하여 효율적인 웹 크롤러와 데이터 스크래핑 도구를 개발하는 것은 좋은 선택입니다. 이 기사에서는 Vue.js 및 Perl 언어를 사용하여 이러한 도구를 개발하는 방법을 소개하고 해당 코드 예제를 첨부합니다. 1. Vue.js 및 Perl 언어 소개

인터넷의 발달로 모든 종류의 데이터에 점점 더 쉽게 접근할 수 있게 되었습니다. 데이터를 얻기 위한 도구로서 웹 크롤러는 점점 더 많은 관심과 주목을 받고 있습니다. 웹 크롤러에서 HTTP 요청은 중요한 링크입니다. 이 기사에서는 PHP 웹 크롤러의 일반적인 HTTP 요청 방법을 자세히 소개합니다. 1. HTTP 요청 방식 HTTP 요청 방식은 클라이언트가 서버에 요청을 보낼 때 사용하는 요청 방식을 의미합니다. 일반적인 HTTP 요청 방법에는 GET, POST 및 PU가 포함됩니다.

인터넷의 급속한 발전으로 인해 데이터는 오늘날 정보화 시대의 가장 중요한 자원 중 하나가 되었습니다. 웹 크롤러는 네트워크 데이터를 자동으로 획득하고 처리하는 기술로 점점 더 많은 관심과 활용을 불러일으키고 있습니다. 이 기사에서는 PHP를 사용하여 간단한 웹 크롤러를 개발하고 네트워크 데이터를 자동으로 가져오는 기능을 구현하는 방법을 소개합니다. 1. 웹 크롤러 개요 웹 크롤러는 네트워크 자원을 자동으로 획득하고 처리하는 기술로, 주요 작업 프로세스는 브라우저 동작을 시뮬레이션하고 지정된 URL 주소에 자동으로 액세스하여 모든 정보를 추출하는 것입니다.

인터넷 시대가 도래하면서 네트워크 데이터를 크롤링하고 수집하는 것이 많은 사람들의 일상 업무가 되었습니다. 웹 개발을 지원하는 프로그래밍 언어 중에서 PHP는 확장성과 사용 용이성으로 인해 웹 크롤러 및 데이터 스크래핑에 널리 사용됩니다. 이 기사에서는 다음과 같은 측면에서 PHP에서 웹 크롤링 및 데이터 스크래핑을 수행하는 방법을 소개합니다. 1. HTTP 프로토콜 및 요청 구현 웹 크롤링 및 데이터 크롤링을 수행하기 전에 HTTP 프로토콜 및 요청 구현에 대해 어느 정도 이해해야 합니다. HTTP 프로토콜은 요청 응답 모델을 기반으로 합니다.

대규모 웹 크롤러 개발에 PHP와 Swoole을 사용하는 방법은 무엇입니까? 서론: 인터넷의 급속한 발전과 함께 빅데이터는 오늘날 사회의 중요한 자원 중 하나가 되었습니다. 이 귀중한 데이터를 얻기 위해 웹 크롤러가 탄생했습니다. 웹 크롤러는 인터넷의 다양한 웹사이트를 자동으로 방문하여 필요한 정보를 추출할 수 있습니다. 이 기사에서는 효율적인 대규모 웹 크롤러를 개발하기 위해 PHP와 swoole 확장을 사용하는 방법을 살펴보겠습니다. 1. 웹 크롤러의 기본 원리를 이해합니다. 웹 크롤러의 기본 원리는 매우 간단합니다.
