Есть ли простой способ получить чьи-то твиты из командной строки?
Учетная запись будет общедоступной, а команда - или сценарий, если необходимо - будет получать все или указанное количество самых последних твитов. в текстовый файл, один твит на строку, без метаданных, самый новый в первой строке.
Без использования API, только bash.
Если вы не хотите использовать API Twitter, вы можете получить RSS-канал профиля Twitter, используя скрипт bash, а затем приступить к его форматированию.
С API Twitter устарел RSS-канал, вы можете обойти это, создав RSS-канал с использованием результатов поиска.
Вот RSS-лента моих твитов .
Хотя вам придется собрать необходимый скрипт bash. От загрузки RSS-канала до форматирования твитов в соответствии с вашими требованиями.
Я создал инструмент, который должен делать почти то же, что вы описали: twitter-screen-scrape . По умолчанию он выводит в формате JSON с метаданными, но тривиально направить вывод через что-то вроде underscore-cli , чтобы вычеркнуть все, что вам не нужно.
$ twitter-screen-scrape -u slang800 | underscore pluck text --outfmt text > outputfile
Вы можете использовать twarc
, чтобы привести пример, если вы хотите архивировать твиты Нассима Николаса Талеба, которые вы используете.
twarc timeline nntaleb --format csv> taleb.csv
Вы также можете использовать другие форматы: --format {json,csv,csv-excel}
Как настроить twarc
: Единственный способ получить полные твиты - использовать [ 115] к сожалению, даже если приложение прозрачное, вам необходимо выполнить начальную настройку и настройку, вам также необходимо подать заявку на API
(
По состоянию на июль 2018 года вы должны подать заявку на Twitter Создайте аккаунт и получите одобрение, прежде чем создавать новые приложения.
blockquote>)
Как только у вас есть ключи приложения , вы можете сказать
twarc
, что они с командой configure.twarc configure
Это сохранит ваши учетные данные в файле с именем
.twarc
в вашем домашнем каталоге, поэтому вам не нужно будет их вводить. Если вы предпочитаете предоставлять их напрямую, вы можете установить их в среде ([ 119],CONSUMER_SECRET
,ACCESS_TOKEN
,ACCESS_TOKEN_SECRET
) или с использованием параметров командной строки (--consumer_key
,--consumer_secret
,--access_token
,--access_token_secret
).
Вы можете пройти путь python + tweepy следующим образом:
Я только что протестировал это и прекрасно работает. Однако есть пользователи, которые защищают свои твиты, поэтому он может не позволить вам загрузить все. Но это особенность твиттера.
Ограничение по-прежнему составляет 3200, и вы получите файл CSV.
Начиная с ближайшей даты, Twitter не позволит вам войти в их API, не имея ключа OAuth. Но в качестве обходного пути вы можете использовать Search API. Это RESTful, поэтому вы можете использовать curl
для получения результатов поиска в формате JSON. Например, если вы хотите получить твиты @ java и сохранить их в файле ~/.tweets
, можно использовать эту строку кода:
curl http://search.twitter.com/search.json?q=from:java&page=1&rpp=10&callback=? >> $HOME/.tweets
И вы можете проанализировать файл, используя любой анализатор JSON.
rpp
- это число твитов, которые нужно получить. callback
- это функция javascript, которая должна выполняться в результирующем JSON. Если вы не используете JavaScript с API, вы можете оставить его?, Но не удаляйте его. Я вызову ошибку. Дополнительные рекомендации по поиску API можно найти на https://dev.twitter.com/docs/api/1/get/search Существуют инструменты для анализа JSON из интерфейса командной строки. , Хотя я никогда не использовал его, я добавлю несколько ссылок на некоторые ресурсы, чтобы помочь вам найти наиболее подходящий инструмент:
И в качестве небольшой заметки, быстрее использовать некоторые Python или Ruby (или другие).
Это мой скрипт, созданный для использования в качестве заставки
#!/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