
OnionSearch는 다양한 .onion 검색 엔진에서 URL을 스크래핑하는 스크립트입니다.
👋 안녕하세요! 전문적인 문의나 협업이 필요하시면 다음 주소로 연락해주세요: [email protected]
📧 가급적이면 전문 이메일을 사용해주세요. 간결하고 친절하게, 모든 내용은 영어로 부탁드립니다!
OnionSearch는 다양한 ".onion" 검색 엔진에서 URL을 스크래핑하는 Python3 스크립트입니다.


pip3 install onionsearch
git clone https://github.com/megadose/OnionSearch.git
cd OnionSearch/
python3 setup.py install
도움말:
usage: onionsearch [-h] [--proxy PROXY] [--output OUTPUT]
[--continuous_write CONTINUOUS_WRITE] [--limit LIMIT]
[--engines [ENGINES [ENGINES ...]]]
[--exclude [EXCLUDE [EXCLUDE ...]]]
[--fields [FIELDS [FIELDS ...]]]
[--field_delimiter FIELD_DELIMITER] [--mp_units MP_UNITS]
search
positional arguments:
search The search string or phrase
optional arguments:
-h, --help show this help message and exit
--proxy PROXY Set Tor proxy (default: 127.0.0.1:9050)
--output OUTPUT Output File (default: output_$SEARCH_$DATE.txt), where $SEARCH is replaced by the first chars of the search string and $DATE is replaced by the datetime
--continuous_write CONTINUOUS_WRITE
Write progressively to output file (default: False)
--limit LIMIT Set a max number of pages per engine to load
--engines [ENGINES [ENGINES ...]]
Engines to request (default: full list)
--exclude [EXCLUDE [EXCLUDE ...]]
Engines to exclude (default: none)
--fields [FIELDS [FIELDS ...]]
Fields to output to csv file (default: engine name link), available fields are shown below
--field_delimiter FIELD_DELIMITER
Delimiter for the CSV fields
--mp_units MP_UNITS Number of processing units (default: core number minus 1)
[...]
기본적으로 스크립트는 mp_units = cpu_count() - 1 매개변수로 실행됩니다. 즉, 4코어 머신의 경우 3개의 스크래핑 함수가 병렬로 실행됩니다. mp_units를 임의의 값으로 강제 설정할 수 있지만, 기본값으로 두는 것을 권장합니다. 모든 요청을 순차적으로 실행하려면(멀티프로세싱 기능 비활성화) 1로 설정할 수 있습니다.
csv 파일에 대한 점진적 쓰기는 멀티프로세싱 기능과 함께 충분히 테스트되지 않았으므로 예상대로 작동하지 않을 수 있습니다.
또한 mp_units가 1보다 클 때 진행 막대가 제대로 표시되지 않을 수 있습니다. 결과에는 영향을 미치지 않으므로 걱정하지 마세요.
"computer"라는 단어에 대해 모든 엔진을 요청하려면:
onionsearch "computer"
"computer"라는 단어에 대해 "Ahmia" 및 "Candle"을 제외한 모든 엔진을 요청하려면:
onionsearch "computer" --exclude ahmia candle
"computer"라는 단어에 대해 "Tor66", "DeepLink" 및 "Phobos"만 요청하려면:
onionsearch "computer" --engines tor66 deeplink phobos
위와 동일하지만 엔진당 로드할 페이지 수를 3으로 제한:
onionsearch "computer" --engines tor66 deeplink phobos --limit 3
지원되는 엔진 목록(및 해당 키)은 스크립트 도움말(-h)에 나와 있습니다.
기본적으로 파일은 프로세스 종료 시 기록됩니다. 파일은 csv 형식이며 다음 열을 포함합니다:
"engine","name of the link","url"
--fields 및 --field_delimiter 매개변수를 사용하여 출력 파일에 기록할 내용을 사용자 정의할 수 있습니다.
--fields를 사용하면 출력 필드를 추가, 제거, 재정렬할 수 있습니다. 기본 모드는 아래와 같습니다. 대신 예를 들어 다음과 같이 출력하도록 선택할 수 있습니다:
"engine","name of the link","url","domain"
--fields engine name link domain으로 설정하여 말이죠.
또는 다음과 같이 출력하도록 선택할 수도 있습니다:
"engine","domain"
--fields engine domain으로 설정하여.
이것들은 예시일 뿐이며 다양한 가능성이 있습니다.
마지막으로 CSV 구분 기호(기본값은 쉼표)를 수정할 수도 있습니다. 예: --field_delimiter ";".
파일 이름은 기본적으로 output_$DATE_$SEARCH.txt로 설정되며, 여기서 $DATE는 현재 날짜/시간, $SEARCH는 검색 문자열의 첫 번째 문자입니다.
스크립트 실행 시 --output을 사용하여 파일 이름을 수정할 수 있습니다. 예:
onionsearch "computer" --output "\$DATE.csv"
onionsearch "computer" --output output.txt
onionsearch "computer" --output "\$DATE_\$SEARCH.csv"
...
(달러 문자를 이스케이프해야 할 수도 있습니다.)
생성된 csv 파일에서 이름과 url 문자열은 최대한 정리되지만 여전히 문제가 있을 수 있습니다...
출력을 점진적으로 기록하도록 선택할 수 있습니다(모든 것을 한 번에 기록하는 대신, 문제가 발생해도 결과를 잃지 않도록). 이렇게 하려면 --continuous_write True를 사용하면 됩니다:
onionsearch "computer" --continuous_write True
그런 다음 Unix 명령어 tail -f를 사용하여 스크래핑 결과를 실시간으로 확인하거나 모니터링할 수 있습니다.