Advertisement
Guest User

Untitled

a guest
Jul 30th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.93 KB | None | 0 0
  1. # coding: UTF - 8
  2. # 特定のアカウントがその単語を含んだツイートをしているか調べるスクリプト
  3. # ツイートしていたらTrue, していなかったらFalseを返します
  4. # 結果をこのファイルが置いてあるディレクトリに作成
  5. # 検索して見つかったものはfound.txtに検索したURLを書き込み、ファイルがなかったら作成します
  6. # 検索して見つからなかったものはnot_found.txtに検索したURLを書き込み、ファイルがなかったら作成します
  7. #
  8. # ターミナル(コマンドプロンプト)上で使用できます
  9. # 「python このファイル名.py @文字列 検索したい言葉」
  10. # 例「python test.py kazuyahkd2 リカ」
  11. # @kazuyahkd2のツイートの中からリカが含まれているかどうか調べます
  12. #
  13. # ただし完全には調べきれないので注意(なぜか抜けが発生する)
  14. # またサーバーエラーには対応してないので注意
  15. # アクセスする速度が速すぎるとだめらしい
  16. #
  17. # 使用したパッケージ
  18. # requests2.19.1 BeautifulSoup4 4.6.0
  19. # 大体50回でエラーになるのと560前後でエラーになることが多いので
  20. # 50の倍数ごとと500の倍数ごとにスリープを入れるといいかもしれません
  21. import requests
  22. from bs4 import BeautifulSoup
  23. import sys
  24. # 必要に応じて以下のコメントアウトしている場所を有効にしてくください
  25. # 一応サーバーエラー対策にはなります
  26. # ↓は両方有効にしてください
  27. #import time
  28. #import random
  29.  
  30. def search_word_from_account_on_twitter(screen_name, word):
  31.  
  32.     URL = "https://mobile.twitter.com/search?q=from%3A" + screen_name +"%20" + word
  33.   # print(URL) # デバッグ用 検索しているURLが確認できる
  34.     # time.sleep(0.5 + random.random()) #0.5+(0~1のランダムな数字)秒間スリープする
  35.     r = requests.get(URL)
  36.   # print(r.status_code) # デバッグ用 #サーバーエラーかどうか確認するためのもの httpステータスコードを返す
  37.     soup = BeautifulSoup(r.content, "lxml")
  38.     div = soup.find_all("div", class_="noresults")
  39.  
  40.  
  41.     if soup.find_all("div", class_="noresults"):
  42.         # 検索して見つからなかったときの処理
  43.  
  44.         # not_found.txtに書き込み
  45.         file = open("not_found.txt", "a", encoding="utf-8")
  46.         file.write(URL + "\n")
  47.         file.close()
  48.  
  49.         # 戻り値
  50.         result = False
  51.  
  52.     else:
  53.         # 検索して見つかったときの処理
  54.  
  55.         # found.txtに書き込み
  56.          file = open("found.txt", "a", encoding="utf-8")
  57.          file.write(URL + "\n")
  58.          file.close()
  59.  
  60.         # 戻り値
  61.          result = True
  62.     return result
  63.  
  64.  
  65. if __name__ == "__main__":
  66.  
  67.     screen_name_main = sys.argv[1]
  68.     word_main = sys.argv[2]
  69.     print(search_word_from_account_on_twitter(screen_name_main, word_main))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement