> 백엔드 개발 > 파이썬 튜토리얼 > Python 크롤러용 프록시를 설정하는 방법

Python 크롤러용 프록시를 설정하는 방법

爱喝马黛茶的安东尼
풀어 주다: 2019-06-20 10:58:24
원래의
6990명이 탐색했습니다.

일부 웹사이트에는 해당하는 크롤러 방지 조치가 있습니다. 예를 들어, 많은 웹사이트는 특정 기간 동안 특정 IP에 대한 방문 횟수를 감지합니다. 방문 빈도가 너무 빠르고 정상적인 방문자처럼 보이지 않는 경우. 이 IP에 대한 액세스를 금지할 수 있습니다. 따라서 프록시 서버를 설정하고 가끔씩 프록시를 변경해야 합니다. IP가 금지된 경우에도 IP를 변경하고 계속 크롤링할 수 있습니다.

Python 크롤러용 프록시를 설정하는 방법

Python에서는 urllib2의 ProxyHandler를 사용하여 프록시 서버를 설정할 수 있습니다. 다음 코드는 프록시 사용 방법을 설명합니다.

import urllib2
# 构建了两个代理Handler,一个有代理IP,一个没有代理IP
httpproxy_handler = urllib2.ProxyHandler({"http" : "124.88.67.81:80"})
nullproxy_handler = urllib2.ProxyHandler({})
#定义一个代理开关
proxySwitch = True 
# 通过 urllib2.build_opener()方法使用这些代理Handler对象,创建自定义opener对象
# 根据代理开关是否打开,使用不同的代理模式
if proxySwitch:  
    opener = urllib2.build_opener(httpproxy_handler)
else:
    opener = urllib2.build_opener(nullproxy_handler)
request = urllib2.Request("http://www.baidu.com/")
# 使用opener.open()方法发送请求才使用自定义的代理,而urlopen()则不使用自定义代理。
response = opener.open(request)
# 就是将opener应用到全局,之后所有的,不管是opener.open()还是urlopen() 发送请求,都将使用自定义代理。
# urllib2.install_opener(opener)
# response = urlopen(request)
print response.read()
로그인 후 복사

위는 일부 프록시에서 수집할 수 있는 무료 개방형 프록시입니다. 웹사이트 테스트 후 이러한 무료 프록시를 사용할 수 있으면 크롤러에서 수집되어 사용됩니다.

관련 추천: "python 비디오 튜토리얼"

무료 프록시 웹사이트:

Western Thorns 무료 프록시

빠른 프록시 무료 프록시

National 프록시 IP

프록시가 충분하면 넣을 수 있습니다. 목록에서 무작위로 프록시를 선택하여 웹사이트에 접속하세요.

import urllib2
import random
proxy_list = [
    {"http" : "124.88.67.81:80"},
    {"http" : "124.88.67.81:80"},
    {"http" : "124.88.67.81:80"},
    {"http" : "124.88.67.81:80"},
    {"http" : "124.88.67.81:80"}
]
# 随机选择一个代理
proxy = random.choice(proxy_list)
# 使用选择的代理构建代理处理器对象
httpproxy_handler = urllib2.ProxyHandler(proxy)
opener = urllib2.build_opener(httpproxy_handler)
request = urllib2.Request("http://www.baidu.com/")
response = opener.open(request)
print response.read()
로그인 후 복사

위 내용은 모두 무료 프록시이므로 안정성이 좋지 않아 사용할 수 없는 경우가 많습니다. 이때 개인 프록시 사용을 고려해 볼 수 있습니다. 즉, 에이전트 공급자로부터 에이전트를 구매하면 공급자는 고유한 사용자 이름과 비밀번호를 제공합니다. 이는 다음과 같은 추가 계정 인증입니다.

# 构建具有一个私密代理IP的Handler,其中user为账户,passwd为密码
httpproxy_handler = urllib2.ProxyHandler({"http" : "user:passwd@124.88.67.81:80"})
로그인 후 복사

위는 urllib2를 사용하여 에이전트 메소드를 설정하는 방법인데, 프록시를 사용하기 위해 요청을 어떻게 사용하는지 살펴보겠습니다.

무료 프록시 사용:

import requests
# 如果代理需要使用HTTP Basic Auth,可以使用下面这种格式:
proxy = { "http": "mr_mao_hacker:sffqry9r@61.158.163.130:16816" }
response = requests.get("http://www.baidu.com", proxies = proxy)
print response.text
로그인 후 복사

참고: 유출을 방지하기 위해 환경 변수에 계정 비밀번호를 쓸 수 있습니다

위 내용은 Python 크롤러용 프록시를 설정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿