Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # coding: UTF - 8
- # 特定のアカウントがその単語を含んだツイートをしているか調べるスクリプト
- # ツイートしていたらTrue, していなかったらFalseを返します
- # 結果をこのファイルが置いてあるディレクトリに作成
- # 検索して見つかったものはfound.txtに検索したURLを書き込み、ファイルがなかったら作成します
- # 検索して見つからなかったものはnot_found.txtに検索したURLを書き込み、ファイルがなかったら作成します
- #
- # ターミナル(コマンドプロンプト)上で使用できます
- # 「python このファイル名.py @文字列 検索したい言葉」
- # 例「python test.py kazuyahkd2 リカ」
- # @kazuyahkd2のツイートの中からリカが含まれているかどうか調べます
- #
- # ただし完全には調べきれないので注意(なぜか抜けが発生する)
- # またサーバーエラーには対応してないので注意
- # アクセスする速度が速すぎるとだめらしい
- #
- # 使用したパッケージ
- # requests2.19.1 BeautifulSoup4 4.6.0
- # 大体50回でエラーになるのと560前後でエラーになることが多いので
- # 50の倍数ごとと500の倍数ごとにスリープを入れるといいかもしれません
- import requests
- from bs4 import BeautifulSoup
- import sys
- # 必要に応じて以下のコメントアウトしている場所を有効にしてくください
- # 一応サーバーエラー対策にはなります
- # ↓は両方有効にしてください
- #import time
- #import random
- def search_word_from_account_on_twitter(screen_name, word):
- URL = "https://mobile.twitter.com/search?q=from%3A" + screen_name +"%20" + word
- # print(URL) # デバッグ用 検索しているURLが確認できる
- # time.sleep(0.5 + random.random()) #0.5+(0~1のランダムな数字)秒間スリープする
- r = requests.get(URL)
- # print(r.status_code) # デバッグ用 #サーバーエラーかどうか確認するためのもの httpステータスコードを返す
- soup = BeautifulSoup(r.content, "lxml")
- div = soup.find_all("div", class_="noresults")
- if soup.find_all("div", class_="noresults"):
- # 検索して見つからなかったときの処理
- # not_found.txtに書き込み
- file = open("not_found.txt", "a", encoding="utf-8")
- file.write(URL + "\n")
- file.close()
- # 戻り値
- result = False
- else:
- # 検索して見つかったときの処理
- # found.txtに書き込み
- file = open("found.txt", "a", encoding="utf-8")
- file.write(URL + "\n")
- file.close()
- # 戻り値
- result = True
- return result
- if __name__ == "__main__":
- screen_name_main = sys.argv[1]
- word_main = sys.argv[2]
- print(search_word_from_account_on_twitter(screen_name_main, word_main))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement