728x90
반응형
1. 프록시 미들웨어 설치
- 프록시 서버를 사용하기 위해 scrapy-proxies 패키지를 설치합니다. 명령 프롬프트(Windows) 또는 터미널(macOS/Linux)에서 다음 명령어를 실행합니다.
pip install scrapy-proxies
2. settings.py 파일 수정
- Scrapy 프로젝트의 settings.py 파일을 열고 다음과 같이 설정을 추가합니다.
DOWNLOADER_MIDDLEWARES = {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 100, # 기본 프록시 미들웨어 비활성화
'scrapy_proxies.RandomProxy': 200, # 프록시 미들웨어 활성화
}
PROXY_LIST = 'path/to/proxy/list.txt' # 프록시 목록 파일 경로 입력
PROXY_MODE = 0 # 프록시 모드 설정 (0: 사용 가능한 프록시 무작위 선택, 1: 순차적으로 선택)
- PROXY_LIST에 프록시 목록 파일의 경로를 입력해야 합니다. 이 파일에는 사용하려는 프록시 서버의 주소와 포트 정보가 포함되어 있어야 합니다.
3. 프록시 목록 파일 작성
- PROXY_LIST에 지정한 경로에 프록시 목록 파일을 생성하고 사용하려는 프록시 서버의 주소와 포트 정보를 기록합니다. 각 줄마다 하나의 프록시 서버 정보를 입력합니다.
- 무료 프록시 서버 정보는 아래에서 구할 수 있다.
https://free-proxy-list.net/
Free Proxy List - Just Checked Proxy List
Free proxies from free-proxy-list.net Updated at 2023-06-26 09:22:03 UTC. 209.97.150.167:3128 190.61.88.147:8080 161.35.70.249:3128 13.81.217.201:80 78.28.152.113:80 167.99.124.118:80 94.158.53.145:3128 103.68.194.89:45787 103.197.251.202:80 46.101.219.34:
free-proxy-list.net
list.txt 샘플(아래 파일처럼 ip:port를 작성해주면 된다.)
http://190.x.x.x:8080
http://200.x.x.x:80
4. 프록시 사용 설정
- Scrapy 스파이더 클래스에서 custom_settings 속성을 사용하여 프록시 사용 설정을 추가할 수 있습니다:
class MySpider(scrapy.Spider):
name = 'myspider'
custom_settings = {
'DOWNLOADER_MIDDLEWARES': {
'scrapy.downloadermiddlewares.httpproxy.HttpProxyMiddleware': 100,
'scrapy_proxies.RandomProxy': 200,
},
'PROXY_LIST': 'path/to/proxy/list.txt',
'PROXY_MODE': 0,
}
# 스파이더 코드 작성
발생할 수 있는 에러
Crawled (404) <GET https://domain/robots.txt> (referer: None)
ROBOTSTXT_OBEY 설정을 False로 변경하면 Scrapy가 robots.txt 파일을 무시하고 크롤링을 진행할 수 있습니다. 이를 통해 robots.txt 파일이 없는 웹 사이트를 크롤링할 수 있습니다.
settings.py 파일에서 다음과 같이 ROBOTSTXT_OBEY 설정을 변경할 수 있습니다.
ROBOTSTXT_OBEY = False
위의 설정을 사용하면 Scrapy가 robots.txt 파일을 무시하고 크롤링을 계속할 수 있습니다. 그러나 이 경우에는 웹 사이트의 크롤링 규칙을 무시하게 되므로 주의해야 한다.
728x90
반응형
'공부기록 > 파이썬' 카테고리의 다른 글
Python + Selenium 특정 요소가 로드된 후 원하는 데이터 가지고 오기(선택자 종류 소개) (1) | 2023.06.30 |
---|---|
Python + Selenium으로 크롤링 시작하기(예제 있음) (0) | 2023.06.29 |
Scrapy & MongoDB(크롤링한 데이터 MongoDB에 저장하는 방법 & MongoDB 선택한 이유) (0) | 2023.06.28 |
scrapy로 크롤링 시작하기(크롤링할 도메인이 여러 개일 경우) (0) | 2023.06.27 |
django 처음 시작하기(윈도우, vscode) (0) | 2023.06.26 |