Twitter에서 특정 단어를 새로 검색하고 결과를 LINE에 알립니다.
완성 이미지
환경
전제
Twitter의 정보를 다루기 위해 API 등록을 마치자.
Twitter API 등록 (계정 신청 방법)에서 승인 될 때까지의 절차 요약
준비
Python에서 OAuth 인증을 하려면 Requests-OAuthlib(라이브러리)이 필요합니다.
명령 프롬프트를 시작하고 아래 코드를 실행
pip install requests-oauthlib
이 후 트윗 검색에 사용하는 OAuth1Session에는 아래와 같은 입력이 필요
Python에서 OAuth 인증을 하려면 Requests-OAuthlib(라이브러리)이 필요합니다.
명령 프롬프트를 시작하고 아래 코드를 실행
pip install requests-oauthlib
이 후 트윗 검색에 사용하는 OAuth1Session에는 아래와 같은 입력이 필요
여기를 참고로 진행해보십시오.
파이썬에서 트위터를 시도했습니다.
config.py
consumer_key = '********'
consumer_secret = '********'
access_token = '********'
access_token_secret = '********'
*********
에 자신의 키를 붙여 넣으십시오!트윗 받기
Tweet_search.py
import json,config
from requests_oauthlib import OAuth1Session
ck = config.consumer_key
cs = config.consumer_secret
at = config.access_token
ats = config.access_token_secret
twitter = OAuth1Session(ck, cs, at,ats)#OAuth認証
API_URL = "https://api.twitter.com/1.1/search/tweets.json?q="
keyword = "可愛い 猫 -RT"
what_type_result_data = "resent" # mixed, recent, popular
how = 1
url = API_URL + keyword + "&result_type=" + what_type_result_data + "&count=" + str(how)
response = twitter.get(url)
response_data = json.loads(response.text)
response_data #データ可視化
API_URL은 Twitter Developer에 설명 된 검색 도구를 사용합니다.
keyword
: 검색하고 싶은 단어를 입력하면 출력합니다and 검색 지원
-RT
에서 검색 단계에서 리트윗 제외 권장 what_type_result_date
: recent
는(는) 새로운 도착 순서 표시입니다 how
은 트윗을 얻습니다.그리고는 get 메소드를 실시해, json로 읽어들입니다
실행하면 이런 식으로 표시됩니다.
{'statuses': [{'created_at': 'Tue Jun 16 14:37:12 +0000 2020',
'id': 1272901044272586754,
'id_str': '1272901044272586754',
'text': '努力しなくても可愛いのは猫だけ、、、、🤔',
'truncated': False,
'entities': {'hashtags': [],
'symbols': [],
'user_mentions': [],
'urls': []},
'metadata': {'iso_language_code': 'ja', 'result_type': 'recent'},
'source': '<a href="http://twitter.com/download/iphone" rel="nofollow">Twitter for iPhone</a>',
'in_reply_to_status_id': None,
'in_reply_to_status_id_str': None,
'in_reply_to_user_id': None,
'in_reply_to_user_id_str': None,
'in_reply_to_screen_name': None,
'user': {'id': 152910352,
'id_str': '152910352',
'name': 'ドライなマブ🎞',
'screen_name': 'usarin_Dry_mabu',
'location': 'ゆかり王国ときどき湘南',
'description': '田村ゆかりさんのライブやイベントは大体参加/(・х・)\あとは上坂すみれさん高垣彩陽さん水樹奈々さん分島花音さんJUNNAさん石原夏織さんを中心に参加しています。',
'url': None,
'entities': {'description': {'urls': []}},
'protected': False,
'followers_count': 160,
'friends_count': 414,
'listed_count': 6,
'created_at': 'Mon Jun 07 05:25:44 +0000 2010',
'favourites_count': 9299,
'utc_offset': None,
'time_zone': None,
'geo_enabled': True,
'verified': False,
'statuses_count': 19301,
'lang': None,
'contributors_enabled': False,
'is_translator': False,
'is_translation_enabled': False,
'profile_background_color': 'DBE9ED',
'profile_background_image_url': 'http://abs.twimg.com/images/themes/theme17/bg.gif',
'profile_background_image_url_https': 'https://abs.twimg.com/images/themes/theme17/bg.gif',
'profile_background_tile': True,
'profile_image_url': 'http://pbs.twimg.com/profile_images/1198478023982346240/S3JxLKxY_normal.jpg',
'profile_image_url_https': 'https://pbs.twimg.com/profile_images/1198478023982346240/S3JxLKxY_normal.jpg',
'profile_banner_url': 'https://pbs.twimg.com/profile_banners/152910352/1590751230',
'profile_link_color': 'CC3366',
'profile_sidebar_border_color': 'DBE9ED',
'profile_sidebar_fill_color': 'E6F6F9',
'profile_text_color': '333333',
'profile_use_background_image': True,
'has_extended_profile': True,
'default_profile': False,
'default_profile_image': False,
'following': False,
'follow_request_sent': False,
'notifications': False,
'translator_type': 'none'},
'geo': None,
'coordinates': None,
'place': None,
'contributors': None,
'is_quote_status': False,
'retweet_count': 0,
'favorite_count': 0,
'favorited': False,
'retweeted': False,
'lang': 'ja'}],
'search_metadata': {'completed_in': 0.019,
'max_id': 1272901044272586754,
'max_id_str': '1272901044272586754',
'next_results': '?max_id=1272901044272586753&q=%E7%8C%AB%E3%80%80%E5%8F%AF%E6%84%9B%E3%81%84&count=1&include_entities=1&result_type=resent',
'query': '%E7%8C%AB%E3%80%80%E5%8F%AF%E6%84%9B%E3%81%84',
'refresh_url': '?since_id=1272901044272586754&q=%E7%8C%AB%E3%80%80%E5%8F%AF%E6%84%9B%E3%81%84&result_type=resent&include_entities=1',
'count': 1,
'since_id': 0,
'since_id_str': '0'}}
이들을 참고로 필요한 정보를 추출합니다.
Tweet_search.py
data = response_data['statuses'][0]
what = data['text']
twitter_url = 'https://twitter.com/yjbtjn/status/' + str(data['id'])
who = data['user']['name']#任意
when = data['created_at'][:19]#任意
where = data['place']#任意
profile = data['description']#任意
output = (what) + (twitter_url)
상기의 코드에서는 일시나 유저 정보 등 필요 이상의 정보까지 추출하고 있습니다만, 최소한의 정보만 취득하고 싶은 경우에는, #임의로 쓰여져 있는 행은 삭제해도 상관없습니다
output = (what) + (twitter_url)
는 라인에 알리고 싶은 정보를 입력합니다.LINE에서는 최소한의 트윗 내용과 발언자만 알면 좋다고 생각하므로 이번에는 what과 twitter_url을 사용합니다.
LINE으로 보내기
이번에 사용하는 것은 LINE Notify라는 실행한 것을 LINE에서 잡는 것입니다.
LINE Notfy를 사용하는 것도 토큰이 필요하므로, 여기를 참고로 등록해 보세요
파이썬 자동 매매 봇에서 LINE으로 알림을 날리는 방법 ~ 가상 화폐 자동 매매 ~
Tweet_search.pyimport requests
def LineNotify(message):
line_notify_token = "*********************************"
line_notify_api = "https://notify-api.line.me/api/notify"
payload = {"message":message}
headers = {"Authorization":"Bearer " + line_notify_token}
requests.post(line_notify_api, data = payload, headers = headers)
LineNotify(output)
토큰을 ****** 부분에 붙여넣으면 완성입니다!
정기 실행 정보
windows 내에서 모두 완료
이번에는 작업 스케줄러라는 소프트웨어를 사용하여 정기 실행을 수행합니다.
여기를 참고로 진행해보십시오.
windows10에서 Python 스크립트를 정기적으로 자동 실행하는 방법 태스크 스케줄러
오류가 자주 발생하는 경우
작업 스케줄러가 시작 화면에서 오류가 자주 발생하는 오류 보고가 증가했습니다.
대부분의 경우 이 블로그에서 소개된 도구로 해결할 수 있습니다.
작업 스케줄러 오류를 복구하는 도구 RepairTask
참고로 한 사이트
Twitter API 등록 (계정 신청 방법)에서 승인 될 때까지의 절차 요약
파이썬 자동 매매 봇에서 LINE으로 알림을 날리는 방법 ~ 가상 화폐 자동 매매 ~
windows10에서 Python 스크립트를 정기적으로 자동 실행하는 방법 태스크 스케줄러
작업 스케줄러 오류를 복구하는 도구 RepairTask
【Twitter×Python】자신 전용의 에고 서치 봇을 만드는 방법
아마추어가 지금 트위터 API에서 놀아 ~ 그 1 ~
Reference
이 문제에 관하여(Twitter에서 특정 단어를 새로 검색하고 결과를 LINE에 알립니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yjbtjn/items/12bdbd2a6560f302d5b3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import requests
def LineNotify(message):
line_notify_token = "*********************************"
line_notify_api = "https://notify-api.line.me/api/notify"
payload = {"message":message}
headers = {"Authorization":"Bearer " + line_notify_token}
requests.post(line_notify_api, data = payload, headers = headers)
LineNotify(output)
windows 내에서 모두 완료
이번에는 작업 스케줄러라는 소프트웨어를 사용하여 정기 실행을 수행합니다.
여기를 참고로 진행해보십시오.
windows10에서 Python 스크립트를 정기적으로 자동 실행하는 방법 태스크 스케줄러
오류가 자주 발생하는 경우
작업 스케줄러가 시작 화면에서 오류가 자주 발생하는 오류 보고가 증가했습니다.
대부분의 경우 이 블로그에서 소개된 도구로 해결할 수 있습니다.
작업 스케줄러 오류를 복구하는 도구 RepairTask
참고로 한 사이트
Twitter API 등록 (계정 신청 방법)에서 승인 될 때까지의 절차 요약
파이썬 자동 매매 봇에서 LINE으로 알림을 날리는 방법 ~ 가상 화폐 자동 매매 ~
windows10에서 Python 스크립트를 정기적으로 자동 실행하는 방법 태스크 스케줄러
작업 스케줄러 오류를 복구하는 도구 RepairTask
【Twitter×Python】자신 전용의 에고 서치 봇을 만드는 방법
아마추어가 지금 트위터 API에서 놀아 ~ 그 1 ~
Reference
이 문제에 관하여(Twitter에서 특정 단어를 새로 검색하고 결과를 LINE에 알립니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/yjbtjn/items/12bdbd2a6560f302d5b3
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Twitter에서 특정 단어를 새로 검색하고 결과를 LINE에 알립니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yjbtjn/items/12bdbd2a6560f302d5b3텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)