python 프록시 액세스 서버 사용
1. 프록시 프로세서 ProxyHandler 만들기:
proxy_support = urllib.request.ProxyHandler (), ProxyHandler 는 클래스입니다. 매개 변수는 사전입니다. {'유형':'프록시 ip: 포트 번호'}
Handler란 무엇입니까?Handler는 프로세서라고도 부른다. 모든 Handlers는 특정 프로토콜을 통해 URLs를 열거나 URL이 열릴 때의 여러 가지 측면, 예를 들어 HTTP 리디렉션이나 HTTP 쿠키를 어떻게 처리하는지 안다.
2. Opener 사용자 정의, 만들기:
opener = urllib.request.build_opener(proxy_support)
Opener가 뭐예요?python은 URL 링크를 열 때opener를 사용합니다.사실, urllib.request.urlopen () 함수는 사실상 기본적인opener를 사용합니다. 단, 여기에서handler를 지정하기 위해opener를 사용자 정의해야 합니다.
3a.opener 설치
urllib.request.install_opener(opener)
install_Opener는 기본 Opener를 만드는 데 사용됩니다. 이것은 urlopen을 호출하면 설치된 Opener를 사용합니다.
3b.openeropener를 호출합니다.open(url)
이 방법은 urlopen 함수처럼 urls를 가져오는 데 직접 사용할 수 있습니다. 보통 install_opener, 편의를 위해서만 빼고.
>>> proxy_support = urllib.request.ProxyHandler({'http':'115.32.41.100:80'})
>>> proxy_support
<urllib.request.ProxyHandler object at 0x0000000002EE74A8>
>>> opener = urllib.request.build_opener(proxy_support)
>>> opener
<urllib.request.OpenerDirector object at 0x0000000002F972B0>
>>> opener.handlers
[<urllib.request.ProxyHandler object at 0x0000000002EE74A8>, <urllib.request.UnknownHandler object at 0x0000000003197B38>, <urllib.request.HTTPHandler object at 0x0000000003197C18>, <urllib.request.HTTPDefaultErrorHandler object at 0x0000000003197CC0>, <urllib.request.HTTPRedirectHandler object at 0x0000000003197BA8>, <urllib.request.FTPHandler object at 0x0000000003197DD8>, <urllib.request.FileHandler object at 0x0000000003197E80>, <urllib.request.HTTPSHandler object at 0x0000000003197E48>, <urllib.request.HTTPErrorProcessor object at 0x0000000003197E10>]
>>> opener.addheaders
[('User-agent', 'Python-urllib/3.3')]
>>> opener.addheaders = [('User-Agent','Test_Proxy_Python3.5_maminyao')]
>>> opener.addheaders
[('User-Agent', 'Test_Proxy_Python3.5_maminyao')]
>>>
프록시 IP 목록에서 임의로 어떤 IP를 사용하여 URL에 접근하는 예
import urllib.request
import random
url = 'http://www.whatismyip.com.tw'
iplist = ['115.32.41.100:80','58.30.231.36:80','123.56.90.175:3128']
proxy_support = urllib.request.ProxyHandler({'http':random.choice(iplist)})
opener = urllib.request.build_opener(proxy_support)
opener.addheaders = [('User-Agent','Test_Proxy_Python3.5_maminyao')]
urllib.request.install_opener(opener)
response = urllib.request.urlopen(url)
html = response.read().decode('utf-8')
print(html)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.