
TOR 네트워크를 통해 (일반 또는 onion) 웹페이지를 크롤링하고 추출합니다
사용 편의성과 Tor의 강력한 프라이버시 기능을 결합하여 안전하고 추적 불가능한 데이터 수집을 가능하게 합니다. 초보자와 숙련된 프로그래머 모두에게 이상적이며, 디지털 시대에 책임 있는 데이터 수집을 위해 필수적인 도구입니다.
[![Release][release-version-shield]][releases-link] [![Last Commit][last-commit-shield]][commit-link] ![Python][python-version-shield] [![Quality Gate Status][quality-gate-shield]][quality-gate-link] [![license][license-shield]][license-link]
터미널을 즐겨 쓰는 사람이라면 모든 것이 단순하고 명확해야 한다는 것을 알고 있을 것입니다. 출력을 다른 도구로 전달하는 것은 필수적이며 정확성이 핵심입니다.
단 하나의 인자만으로 TOR 네트워크를 통해 .onion 웹페이지나 일반 웹페이지를 읽을 수 있으며, 파이프를 사용하여 출력을 원하는 다른 도구로 전달할 수 있습니다.
$ torcrawl -u http://www.github.com/ | grep 'google-analytics'
<meta-name="google-analytics" content="UA-XXXXXX- ">
웹페이지의 링크를 크롤링하려면 -c를 사용하면 BAM 하고 파일에 모든 내부 링크가 저장됩니다. -d를 사용하여 그 링크들을 크롤링할 수도 있고, 이런 식으로 계속할 수 있습니다. 또한 -p 인자를 사용하여 다음 크롤링 전에 몇 초간 대기할 수 있습니다.
$ torcrawl -v -u http://www.github.com/ -c -d 2 -p 2
# TOR is ready!
# URL: http://www.github.com/
# Your IP: XXX.XXX.XXX.XXX
# Crawler started from http://www.github.com/ with 2 depth crawl and 2 second(s) delay:
# Step 1 completed with: 11 results
# Step 2 completed with: 112 results
# File created on /path/to/project/links.txt
[!TIP]
크롤링은 불법이 아니지만, 저작권을 침해하는 것은 불법입니다. 크롤링을 시작하기 전에 항상 웹사이트의 이용약관을 다시 확인하는 것이 가장 좋습니다. 일부 웹사이트는 크롤러에게 해당 페이지를 방문하지 말라고 알리기 위해robots.txt라는 것을 설정합니다.
이 크롤러는 여러분이 이를 우회할 수 있게 해주지만, 우리는 항상 robots.txt를 존중할 것을 권장합니다.
pip install torcrawlgit clone https://github.com/MikeMeliz/TorCrawl.py.gitpip install -r requirements.txtapt-get install torservice tor starttor.exe][tor-download]를 다운로드한 후:tor.exe --service installtor.exe --service startbrew install torbrew services start tor| 인수 | 긴 이름 | 설명 |
|---|---|---|
| 일반: | ||
| -h | --help | 도움말 메시지 |
| -v | --verbose | 진행 상황에 대한 더 많은 정보 표시 |
| -u | --url *.onion | 크롤링하거나 추출할 웹페이지의 URL |
| -w | --without | TOR 네트워크를 사용하지 않음 |
| -rua | --random-ua | 요청에 대한 무작위 user-agent 순환 활성화 |
| -rpr | --random-proxy | res/proxies.txt에서 무작위 프록시 순환 활성화 (-w 플래그 필요, 한 줄에 프록시 하나, 형식: host:port) |
| -px | --proxy | SOCKS5 프록시의 IP 주소 (기본값: TOR 사용 시 127.0.0.1) |
| -pr | --proxyport | SOCKS5 프록시의 포트 (기본값: 9050) |
| -f | --folder | 생성된 파일을 포함할 디렉터리 |
| -V | --version | 버전 표시 후 종료 |
| 추출: | ||
| -e | --extract | 페이지의 코드를 터미널 또는 파일로 추출 (기본값: 터미널) |
| -i | --input filename | URL이 포함된 입력 파일 (줄로 구분) |
| -o | --output [filename] | 페이지를 파일로 출력 (한 페이지의 경우) |
| -y | --yara | yara 키워드 검색 수행: h = 전체 html 객체 검색, t = 텍스트만 검색 |
| 크롤링: | ||
| -c | --crawl | 웹사이트 크롤링 (기본 출력 위치 website/links.txt) |
| -d | --depth | 크롤러 탐색 깊이 설정 (기본값: 1) |
| -p | --pause | 요청 간 일시 정지 시간(초) (기본값: 0) |
| -j | --json | 크롤링 결과를 txt 출력에 추가하여 JSON으로 내보내기 |
| -x | --xml | 크롤링 결과를 txt 출력에 추가하여 XML로 내보내기 |
| -DB | --database | 크롤링 결과와 링크 그래프를 SQLite 데이터베이스로 내보내기 |
| -vis | --visualization | SQLite 데이터베이스에서 HTML 시각화 생성 (-DB 필요) |
| -l | --log | 방문한 URL과 해당 응답 코드를 기록하는 로그 파일 |
단일 웹페이지를 터미널로 추출하려면:
$ python torcrawl.py -u http://www.github.com
<!DOCTYPE html>
...
</html>
파일(github.htm)로 추출하며 TOR을 사용하지 않음:
$ python torcrawl.py -w -u http://www.github.com -o github.htm
## File created on /script/path/github.htm
터미널로 추출하고 google-analytics가 포함된 줄만 찾으세요:
$ python torcrawl.py -u http://www.github.com | grep 'google-analytics'
<meta name="google-analytics" content="UA-*******-*">
파일로 추출하고 yara를 사용하여 google-analytics가 포함된 줄만 찾습니다:
$ python torcrawl.py -v -w -u https://github.com -e -y 0
...
참고: 다른 키워드를 검색하려면 res/keyword.yar를 업데이트하세요.
원시 HTML 검색에는 -y 0을, 텍스트 검색 전용에는 -y 1을 사용하세요.
웹페이지 집합(파일에서 가져옴)을 터미널로 추출:
$ python torcrawl.py -i links.txt
...
TOR를 사용하지 않고 웹페이지의 링크를 크롤링하며, 상세 출력도 표시합니다(매우 유용함):
$ python torcrawl.py -v -w -u http://www.github.com/ -c
## URL: http://www.github.com/
## Your IP: *.*.*.*
## Crawler Started from http://www.github.com/ with step 1 and wait 0
## Step 1 completed with: 11 results
## File created on /script/path/links.txt
웹페이지를 깊이 2(2회 클릭)로 크롤링하고 다음 페이지를 크롤링하기 전에 5초 대기합니다:
$ python torcrawl.py -v -u http://www.github.com/ -c -d 2 -p 5
## TOR is ready!
## URL: http://www.github.com/
## Your IP: *.*.*.*
## Crawler Started from http://www.github.com with step 2 and wait 5
## Step 1 completed with: 11 results
## Step 2 completed with: 112 results
## File created on /script/path/links.txt
한 번의 명령으로 페이지를 크롤링하고 웹페이지를 폴더로 추출할 수 있습니다:
$ python torcrawl.py -v -u http://www.github.com/ -c -d 2 -p 5 -e
## TOR is ready!
## URL: http://www.github.com/
## Your IP: *.*.*.*
## Crawler Started from http://www.github.com with step 1 and wait 5
## Step 1 completed with: 11 results
## File created on /script/path/FolderName/index.htm
## File created on /script/path/FolderName/projects.html
## ...
참고: 크롤러 링크의 기본 파일(현재로서는 유일한 파일)은 links.txt 문서입니다. 또한 크롤링 직후 추출하려면 -e 인자를 제공해야 합니다
같은 논리로, 이 모든 페이지를 파싱하여 grep(예를 들어)하고 특정 텍스트를 검색할 수 있습니다:
$ python torcrawl.py -u http://www.github.com/ -c -e | grep '</html>'
</html>
</html>
...
단일 명령으로 페이지를 크롤링하고, 키워드 검색을 수행하며, 검색 결과와 일치하는 웹페이지를 폴더로 추출할 수 있습니다: