커맨드 라인에서 트윗을 검색하는 방법?


11

커맨드 라인에서 누군가의 트윗을 검색하는 간단한 방법이 있습니까?

계정은 공개적이며 명령 또는 스크립트 (필요한 경우)는 메타 데이터없이 첫 번째 행에서 가장 최신 인 메타 데이터없이 텍스트 파일에 대해 가장 최근의 트윗 또는 전체 수의 최근 트윗을 검색합니다.

API를 사용하지 않으면 bash 만 가능합니다.


쉽고 달콤한 파이썬 API 사용
BigSack

내가 선호하는 방식이 아니라 어떤 파이썬 API, 링크 또는 저장소에 호기심이 있습니까?
Strapakowsky

1
python-twitter API 래퍼가 있습니다.
jokerdino

답변:


7

마감일부터 트위터는 OAuth 키가 없으면 API를 사용할 수 없습니다. 그러나 해결 방법으로 Search API를 사용할 수 있습니다. RESTful이므로 curl검색 결과를 JSON 형식으로 검색 하는 데 사용할 수 있습니다 . 예를 들어 @java의 트윗을 검색하여 file에 저장하려면 다음 ~/.tweets코드 줄을 사용할 수 있습니다.

curl http://search.twitter.com/search.json?q=from:java&page=1&rpp=10&callback=? >> $HOME/.tweets

JSON 파서를 사용하여 파일을 구문 분석 할 수 있습니다.


rpp매개 변수는 트윗 AF 번호를 검색 할 수 있습니다. callback결과 JSON에서 실행될 자바 스크립트 함수입니다. API와 함께 JavaScript를 사용하지 않는 경우에는?를 그대로두고 제거하지 마십시오. 오류가 발생합니다. 검색 API에 대한 자세한 지침은 https://dev.twitter.com/docs/api/1/get/search 에서 찾을 수 있습니다.

명령 행 인터페이스에서 JSON을 구문 분석하는 도구가 있습니다. 한 번도 사용하지는 않았지만 가장 적합한 도구를 찾는 데 도움이되는 몇 가지 리소스에 대한 링크를 제공합니다.

그리고 약간의 참고로, 파이썬이나 루비 (또는 다른 것)를 사용하는 것이 더 빠릅니다.


좋아 보인다, @g_kaya 감사합니다. 예를 들어, 모든 트윗 또는 최대 허용 또는 400 개의 트윗을 어떻게 지정할 수 있습니까? 콜백과 rpp 옵션은 무엇입니까? 명령 줄 JSON 파서를 추천 할 수 있습니까?
Strapakowsky

귀하의 질문에 따라 답변을 편집했습니다. 희망이 :) 도움이

나는 그들이 유용 있다면 다행이야, 당신이있는 거 환영합니다 :)

더 이상 작동하지 않음
Dean Meehan

1
"오류": [{ "message": "Twitter REST API v1이 더 이상 활성화되지 않습니다. API v1.1으로 마이그레이션하십시오 dev.twitter.com/docs/api/1.1/… }]}
cavalcade

5

Twitter API를 사용하지 않으려면 bash 스크립트를 사용하여 Twitter 프로필의 RSS 피드를 가져 와서 형식화 할 수 있습니다.

Twitter API는 RSS 피드를 더 이상 사용하지 않으므로 검색 결과를 사용하여 RSS 피드를 생성하여이 문제를 해결할 수 있습니다.

내 트윗RSS 피드는 다음과 같습니다 .


그래도 필요한 bash 스크립트를 작성해야합니다. RSS 피드 가져 오기에서 요구 사항에 따라 트윗 형식화에 이르기까지.


감사합니다 @jokerdino. 원시 파일에 액세스 할 수 있으면 파일 형식을 지정하는 것이 좋습니다. 여기 ( webapps.stackexchange.com/questions/34066/… )에 요청한 것처럼 모든 트윗이있는 XML이 있었지만 더 이상은 없습니다. RSS 피드의 시간 범위가 제한되어 있으므로 보낸 링크에서 모든 트윗을 다운로드하는 방법을 찾지 못했습니다. 도울 수 있니?
Strapakowsky

1
분명히 최대 9 일 동안의 트윗에만 액세스 할 수 있습니다. 그보다 오래된 것은 검색이나 API를 통해 사용할 수 없습니다.
jokerdino

9 일이 지난 트윗을 얻는 방법이 확실하지 않습니까? 나는 여기에 질문을 열었다 : webapps.stackexchange.com/questions/34070/…
Strapakowsky

사용자 페이지로 직접 이동하면 아래로 스크롤하여 아래로 스크롤하여 자바 스크립트가 다음 페이지를 제한없이로드 할 수 있습니다. 모든 트윗을 검색하는 데 악용 될 수 있습니까?
Strapakowsky

이 링크 는 검색 API를 사용하여 일주일 이상의 트윗을 가져올 수 없습니다. 그리고 JavaScript를 사용하여 트윗을 가져 오는 것이 확실하지 않습니다. 내가 아는 바에 따르면 타임 라인에서 약 3000 개 이상의 트윗을 읽을 수 없습니다.
jokerdino

2

이것은 스크린 세이버 사용을 위해 만든 스크립트입니다

#!/bin/bash

user="$1"
user="${user:=pontifex_pl}"

last_status_url=$(lynx -dump https://twitter.com/$user \
    | grep -i "$user/status/" \
    | head -1 \
    | awk '{print $2}')

lynx -dump "$last_status_url" \
    | grep 'Twitter:' -m1 -A4 \
    | tr -d '\n' \
    | sed -e 's/[^"]*"//' -e 's/".*//' \
    | tr -s ' '

echo

1

나는 당신이 묘사 한 것과 정확히 일치하는 도구를 만들었습니다 : twitter-screen-scrape . 기본적으로 메타 데이터와 함께 JSON으로 출력되지만 원하지 않는 모든 것을 제거하기 위해 underscore-cli 와 같은 것을 통해 출력을 파이프하는 것은 쉽지 않습니다.

$ twitter-screen-scrape -u slang800 | underscore pluck text --outfmt text > outputfile

1

python + tweepy route는 다음과 같이 갈 수 있습니다.

  1. 자신의 Twitter 응용 프로그램 만들기 (API 키를 얻으려면)
  2. 트위터 계정에 대한 액세스 토큰 만들기
  3. 신임 정보와 함께 다음과 같은 스크립트를 사용하십시오. https://gist.github.com/yanofsky/5436496

방금 테스트했으며 훌륭하게 작동합니다. 그러나 트윗을 보호하는 사용자가 있으므로 모든 것을 다운로드하지 못할 수 있습니다. 그러나 그것은 트위터의 기능입니다.

여전히 제한은 3200이며 CSV 파일을 얻습니다.


1

사용 twarc하는 Nassim Nicholas Taleb의 트윗을 보관하려면 예를 들어 사용할 수 있습니다.

twarc timeline nntaleb --format csv> taleb.csv 

다른 형식도 사용할 수 있습니다. --format {json,csv,csv-excel}

구성 방법 twarc: 전체 트윗을 얻는 유일한 방법은 API불행히도 앱이 투명하더라도 초기 설정 및 구성이 필요하지만 API(

2018 년 7 월부터 새 앱을 만들려면 Twitter 개발자 계정을 신청하고 승인을 받아야합니다.

)

일단 당신이 당신의 응용 프로그램 키를 가지고 당신은 말할 수 twarc그들이 구성 명령이 무엇인지.

twarc configure

이것은라는 파일에 자격 증명을 저장합니다 .twarc당신이 그들을 계속 입력하지 않아도 사용자의 홈 디렉토리를. 당신이 아니라 직접 제공 할 경우에는 환경을 설정할 수 있습니다 ( CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET) 또는 (명령 줄 옵션을 사용하여 --consumer_key, --consumer_secret, --access_token, --access_token_secret).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.