
고급 Twitter 스크래핑 및 OSINT 도구로, Python으로 작성되었으며 Twitter의 API를 사용하지 않습니다. 사용자의 팔로워, 팔로잉, 트윗 등을 스크래핑하면서 대부분의 API 제한을 회피할 수 있습니다.

인증 불필요. API 불필요. 제한 없음.
Twint는 파이썬으로 작성된 고급 트위터 스크래핑 도구로, 트위터 API를 사용하지 않고 트위터 프로필에서 트윗을 스크래핑할 수 있게 해줍니다.
Twint는 트위터의 검색 연산자를 활용하여 특정 사용자의 트윗, 특정 주제/해시태그/트렌드와 관련된 트윗을 스크래핑하거나, 트윗에서 이메일이나 전화번호와 같은 민감한 정보를 걸러낼 수 있습니다. 저는 이것이 매우 유용하다고 생각하며, 여러분도 이를 통해 창의적으로 활용할 수 있습니다.
Twint는 또한 트위터에 특별한 쿼리를 보내어, 인증, API, Selenium 또는 브라우저 에뮬레이션 없이 트위터 사용자의 팔로워, 사용자가 좋아요를 누른 트윗, 그리고 팔로우하는 대상을 스크래핑할 수 있게 해줍니다.
Twint를 트위터 API 대신 사용할 때의 장점:
트위터는 사용자 타임라인을 탐색할 때 스크롤을 제한합니다. 즉, .Profile 또는 .Favorites를 사용하면 약 3200개의 트윗을 얻을 수 있습니다.
Git:
git clone --depth=1 https://github.com/twintproject/twint.git
cd twint
pip3 install . -r requirements.txt
Pip:
pip3 install twint
또는
pip3 install --user --upgrade git+https://github.com/twintproject/twint.git@origin/master#egg=twint
Pipenv:
pipenv install git+https://github.com/twintproject/twint.git#egg=twint
추가됨: Dockerfile
많은 분들이 설치에 문제를 겪고 있음을 확인했습니다 (저를 포함해서). 제가 문제를 조사하는 동안 임시로 Dockerfile을 사용해 주세요.
기본을 이해하는 데 도움이 되는 몇 가지 간단한 예제:
twint -u username - 사용자의 모든 트윗 스크래핑 (리트윗은 포함하지 않지만 답글은 포함).twint -u username -s pineapple - 사용자 타임라인에서 _pineapple_이 포함된 모든 트윗 스크래핑.twint -s pineapple - 모든 사용자의 트윗에서 pineapple이 포함된 모든 트윗 수집.twint -u username --year 2014 - 2014년 이전에 트윗된 트윗 수집.twint -u username --since "2015-12-20 20:30:15" - 2015-12-20 20:30:15 이후에 트윗된 트윗 수집.twint -u username --since 2015-12-20 - 2015-12-20 00:00:00 이후에 트윗된 트윗 수집.twint -u username -o file.txt - 트윗 스크래핑 후 file.txt에 저장.twint -u username -o file.csv --csv - 트윗 스크래핑 후 csv 파일로 저장.twint -u username --email --phone - 전화번호나 이메일 주소가 포함된 트윗 표시.twint -s "Donald Trump" --verified - Donald Trump에 대해 트윗한 인증된 사용자의 트윗 표시.명령어와 옵션에 대한 자세한 내용은 위키에 있습니다.
Twint는 이제 모듈로 사용할 수 있으며 사용자 정의 포맷을 지원합니다. 자세한 내용은 위키에 있습니다.
import twint
# Configure
c = twint.Config()
c.Username = "realDonaldTrump"
c.Search = "great"
# Run
twint.run.Search(c)
출력
955511208597184512 2018-01-22 18:43:19 GMT <now> pineapples are the best fruit
import twint
c = twint.Config()
c.Username = "noneprivacy"
c.Custom["tweet"] = ["id"]
c.Custom["user"] = ["bio"]
c.Limit = 10
c.Store_csv = True
c.Output = "none"
twint.run.Search(c)
Twint와 함께 Elasticsearch를 설정하는 방법은 위키에 있습니다.

Twint 데스크톱 앱을 개발 중입니다.

사용자의 트윗을 스크래핑하려고 했는데, 그들이 존재한다는 것을 알지만 가져오지 못합니다
트위터는 계정을 섀도우밴 할 수 있으며, 이는 해당 트윗이 검색을 통해 확인되지 않음을 의미합니다. 이 문제를 해결하려면 Twint를 CLI로 사용할 때 --profile-full을 전달하거나, 모듈로 사용할 때 config.Profile_full = True를 추가하세요. 이 과정은 상당히 느릴 수 있습니다.
팔로워 사용자 이름/팔로잉 사용자 이름만 가져오려면
twint -u username --followers
twint -u username --following
팔로워/팔로잉 사용자의 사용자 정보를 가져오려면
twint -u username --followers --user-full
twint -u username --following --user-full
사용자의 사용자 정보만 가져오려면
twint -u username --user-full
사용자 목록에서 사용자들의 정보를 가져오려면
twint --userlist inputlist --user-full
영어 트윗 100개를 가져와 이탈리아어로 번역하려면
twint -u noneprivacy --csv --output none.csv --lang en --translate --translate-dest it --limit 100
또는
import twint
c = twint.Config()
c.Username = "noneprivacy"
c.Limit = 100
c.Store_csv = True
c.Output = "none.csv"
c.Lang = "en"
c.Translate = True
c.TranslateDest = "it"
twint.run.Search(c)
참고:
질문이 있거나, 토론에 참여하고 싶거나, 추가 도움이 필요하면 OSINT 팀의 Twint 전용 채널에 가입해 주세요.
twint -g="48.880048,2.385939,1km" -o file.csv --csv - 파리 특정 장소 주변 1km 반경 내 트윗 스크래핑 후 csv 파일로 내보내기.twint -u username -es localhost:9200 - 트윗을 Elasticsearch로 출력twint -u username -o file.json --json - 트윗 스크래핑 후 json 파일로 저장.twint -u username --database tweets.db - 트윗을 SQLite 데이터베이스에 저장.twint -u username --followers - 트위터 사용자의 팔로워 스크래핑.twint -u username --following - 트위터 사용자가 팔로우하는 대상 스크래핑.twint -u username --favorites - 사용자가 좋아요를 누른 모든 트윗 수집 (약 3200개 트윗 수집).twint -u username --following --user-full - 사용자가 팔로우하는 대상의 전체 사용자 정보 수집twint -u username --timeline - 효과적인 방법으로 사용자 프로필에서 트윗 수집 (약 3200개 트윗 수집, 리트윗 및 답글 포함).twint -u username --retweets - 빠른 방법으로 사용자 프로필에서 최근 900개 트윗 (리트윗 포함) 수집.twint -u username --resume resume_file.txt - 마지막으로 저장된 스크롤 ID부터 검색 재개.