ㅇ Tor 프로젝트는 익히 알고 있다고 가정하고, 어떤 사이트를 대상으로 Crawling을 한다고 할때 본인의 IP 노출에 따른 서비스 블럭킹을 경험할 수 있다.
ㅇ 이를 회피하는 방법은 프록시를 사용하거나, Tor를 사용하는 방법이 있다. 이번 블로그에는 Tor 기반의 python 스크립트를 사용해서 크롤링하는 법에 대해서 알아보자.
ㅇ Tor 사용에 대한 책임은 본인이 지는 것임을 명심하자.
ㅇ 본 게시물은 ubunu 12.04 LTS 환경에서 테스트하였다.
ㅇ 본 게시물의 출처는 아래와 같다.
http://sacharya.com/crawling-anonymously-with-tor-in-python/
1. Tor를 설치한다.
- sudo apt-get update
- sudo apt-get install tor
- sudo /etc/init.d/tor restart
** 자 이러면 이런 socks listener가 9050포트상에서 동작하고 있다는 문구를 보게 될것이다.
2. 원하는 패스워드에 대해서 hashed password를 만든다.
- tor --hash-password mypassword
3. 셋팅값(ControlPort, HashedControlPassword)을 적용하고, Tor를 다시 시작한다.
- sudo vim(or vi or gedit) /etc/tor/torrc
- sudo /etc/init.d/tor restart
4. pytorctl 를 설치한다. pytorctl은 Tor Controller와 interaction하는 파이썬 기반의 모듈이다.
- sudo apt-get install git
- sudo apt-get install python-dev python-pip
- git clone git://github.com/aaronsw/pytorctl.git
- sudo pip install pytorctl/
5. privoxy 를 설치한다. Tor 자체가 http 프록시가 아니기 때문에 Tor 네트워크에 접속하기 위해서는 socks5를 이용하는 http-proxy포서 privoxy를 설치해야 한다. 나도 정확한 개념은 모른다. 일단 이렇게 해야 Tor 네트워크에 접속할 수 있다.
- sudo apt-get install privoxy
6. Tor를 사용하기 위해서는 privoxy에게 관련된 정보를 넘겨야 한다. 즉 localhost port 9050에서 SOCKS 서버를 통과하는 모든 트래픽을 라우팅한다는 정보를 privoxy에게 알린다.
sudo vim(vi or gedit) /etc/privoxy/config로 이동하여 forward-socks5를 활성화시킨다.
- sudo vim(vi or gedit) /etc/privoxy/config
7. Configuration을 적용하기 위하여 privoxy를 다시 시작한다.
-
sudo /etc/init.d/privoxy restart
8. Tor를 동작하기 위한 간단한 python 스크립트를 소개한다.
'Python' 카테고리의 다른 글
python setup.py 실행시 vcvarsall.bat 관련 에러 (0) | 2014.12.17 |
---|---|
으흐흐 (0) | 2014.06.30 |