Scrapy에 프록시 연결하기

Scrapy는 많은 페이지를 모으는 크롤러를 만드는 Python 도구예요. 요청의 meta 값에 proxy를 넣으면 요청마다 ProxySup를 거쳐요.

최종 수정

Scrapy 연결에 필요한 것

게이트웨이gate.proxysup.com:7777
사용자 이름user-country-국가코드 형식
비밀번호계정의 접속 토큰

Scrapy 설치

터미널
pip install scrapy

Scrapy 기본 연결 예시

코드
import scrapy

class PriceSpider(scrapy.Spider):
    name = "price"
    start_urls = ["https://ipinfo.io/json"]
    custom_settings = {"CONCURRENT_REQUESTS_PER_DOMAIN": 4}

    def start_requests(self):
        for url in self.start_urls:
            yield scrapy.Request(url, meta={
                "proxy": "http://user-country-de:[email protected]:7777"
            })

    def parse(self, response):
        yield {"body": response.text}

Scrapy 고정 세션 쓰기

바꿀 부분
meta={"proxy": "http://user-country-de-session-a1b2:[email protected]:7777"}
# 로그인 뒤 여러 페이지를 이어서 볼 때 같은 세션 이름을 써요

사용자 이름 규칙

값하는 일예시
country-국가코드접속할 나라를 정해요country-jp
city-도시이름도시까지 정해요. 도시 지정이 되는 나라에서만 써요city-osaka
session-이름고정 세션을 켜요. 이름이 같으면 같은 IP를 받아요session-a1b2
type-mobile 또는 type-dc모바일이나 데이터센터 프록시로 바꿔요. 없으면 주거용이에요type-mobile

Scrapy 연결 오류 해결

407 오류가 나와요

사용자 이름이나 토큰이 틀렸다는 뜻이에요. 토큰 앞뒤에 빈칸이 들어가지 않았는지, 사용자 이름이 user-로 시작하는지 확인해요.

연결 시간이 초과돼요

timeout 값을 30초 정도로 늘리고, 같은 사이트에 보내는 동시 요청 수를 줄여요.

같은 IP가 유지되지 않아요

사용자 이름에 session 값이 있는지 확인해요. 고정 세션은 최대 30분까지 유지돼요.

원하는 도시가 안 잡혀요

도시 지정이 되는 나라인지 지원 국가 페이지에서 확인하고, 도시 이름을 영문 소문자와 밑줄로 넣어요.

다른 연동 가이드