{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "𝐎𝐒𝐈𝐍𝐓 - 𝐓𝐰𝐢𝐭𝐭𝐞𝐫 𝐝𝐨𝐫𝐤𝐬 For \"Russia-Ukraine Conflict\"\n", "\n", "OSINT to Pandas By https://medium.com/@liontin\n", "\n", "Tweet Dork by : https://twitter.com/techniquesOsint/\n", "\n", "search Query by Hastags, language, filter by video, location by goecode and radius\n", "\n", "**#StandWithUkraine lang:uk \"filter:native_video\" geocode:49.3227937844972,31.3202829593814,200km**\n", "\n", "search Query by language, filter by video, location by goecode and radius\n", "\n", "**lang:uk \"filter:native_video\" geocode:49.3227937844972,31.3202829593814,200km**\n", "\n", "search Query by language, filter by video, filter by account verified, location by goecode and radius\n", "\n", "**lang:uk \"filter:native_video\" \"filter:verified\" geocode:49.3227937844972,31.3202829593814,200km**\n", "\n", "search Query by language, filter by video, and filter by account verified\n", "\n", "**lang:uk \"filter:verified\" #Kyiv**\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 441, "metadata": {}, "outputs": [], "source": [ "import requests\n", "import pandas as pd\n", "import numpy as np" ] }, { "cell_type": "code", "execution_count": 442, "metadata": {}, "outputs": [], "source": [ "token_reponse = requests.request(\"POST\", 'https://api.twitter.com/1.1/guest/activate.json', headers={'authorization': 'Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA'}).json() # Please Input You Bearer Code\n", "guest_token = token_reponse['guest_token']\n", "\n", "\n", "keywoard = input('keywoard')\n", "numberstart = input('Number')\n", "tweets = []\n", "num_tweets = int(numberstart)\n", "first_scroll = True\n", "\n", "params = {\n", " 'include_quote_count': True,\n", " 'include_reply_count': True,\n", " 'tweet_mode': 'extended',\n", " 'tweet_search_mode': 'live',\n", " 'q': keywoard,\n", " 'query_source': 'typed_query',\n", " 'result_filter': 'video',\n", " 'cursor': None,\n", "}\n", "\n", "headers = {\n", " 'authorization': 'Bearer AAAAAAAAAAAAAAAAAAAAANRILgAAAAAAnNwIzUejRCOuH5E6I8xnZz4puTs%3D1Zv7ttfk8LF81IUq16cHjhLTvJu4FA33AGWWjCpTnA', # Please Input You Bearer Code\n", " 'x-guest-token': guest_token,\n", "}\n", "\n", "\n", "while len(tweets) < num_tweets:\n", " tweet_data = requests.get('https://twitter.com/i/api/2/search/adaptive.json', headers=headers, params=params).json()\n", "\n", " for tweet in tweet_data['globalObjects']['tweets']:\n", " tweetuser = tweet_data['globalObjects']['tweets'][tweet]['extended_entities']['media'][0]['expanded_url'].replace('https://', '').split('/')[1]\n", " try : replay = tweet_data['globalObjects']['tweets'][tweet]['reply_count']\n", " except : replay = '0'\n", " text = tweet_data['globalObjects']['tweets'][tweet]['full_text']\n", " tweettime = tweet_data['globalObjects']['tweets'][tweet]['created_at']\n", " try : retweet = tweet_data['globalObjects']['tweets'][tweet]['retweet_count']\n", " except : retweet = '0'\n", " try : quote = tweet_data['globalObjects']['tweets'][tweet]['quote_count']\n", " except : quote = '0'\n", " try : tweetlike = tweet_data['globalObjects']['tweets'][tweet]['favorite_count']\n", " except : tweetlike = '0'\n", " try : tweetmedia = tweet_data['globalObjects']['tweets'][tweet]['extended_entities']['media'][0]['expanded_url']\n", " except : tweetmedia = '0'\n", " try : tweetview = tweet_data['globalObjects']['tweets'][tweet]['extended_entities']['media'][0]['ext']['r']['ok']['viewCount']\n", " except : tweetview = '0'\n", " tweeturl = tweet_data['globalObjects']['tweets'][tweet]['extended_entities']['media'][0]['url']\n", " \n", "\n", " tweets.append({'username': str('@%s' % tweetuser),'tweet': text, 'replay': replay, 'retweet': retweet, 'retweet comments': quote, 'like': tweetlike, 'media': tweetmedia, 'link': tweeturl, 'time': tweettime})\n", " getww3 = []\n", " for tweet in tweets:\n", " data = tweet\n", " getww3.append(data)\n", "\n", " if first_scroll:\n", " entries = tweet_data['timeline']['instructions'][0]['addEntries']['entries']\n", " for entry in entries:\n", " if entry['entryId'] == 'sq-cursor-bottom':\n", " params['cursor'] = entry['content']['operation']['cursor']['value']\n", " first_scroll = False\n", " else:\n", " for object in tweet_data['timeline']['instructions']:\n", " if 'replaceEntry' in object:\n", " if object['replaceEntry']['entryIdToReplace'] == 'sq-cursor-bottom':\n", " params['cursor'] = object['replaceEntry']['entry']['content']['operation']['cursor']['value']\n", "\n", "\n" ] }, { "cell_type": "code", "execution_count": 443, "metadata": {}, "outputs": [], "source": [ "ru_uk = pd.DataFrame(getww3)" ] }, { "cell_type": "code", "execution_count": 444, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
usernametweetreplayretweetretweet commentslikemedialinktime
0@ArmedForcesUkrПривіт від Харківських танкістів! \\nСЛАВА УКРА...91917623884https://twitter.com/ArmedForcesUkr/status/1498...https://t.co/KMbO1eD2LFMon Feb 28 05:04:27 +0000 2022
1@ian_tanyaРосійські окупаційні війська зайшли в місто Ге...13925354959455https://twitter.com/ian_tanya/status/149684513...https://t.co/Lp95AJu1TkThu Feb 24 13:51:04 +0000 2022
2@olehbatkovychПояснення чому не було брифінгу Путіна https:/...38425191996https://twitter.com/olehbatkovych/status/14979...https://t.co/j5c8f6x3DnSun Feb 27 15:10:59 +0000 2022
3@ArmedForcesUkrБайрактари в роботі. Наші оператори ювелірно к...7365288102520738https://twitter.com/ArmedForcesUkr/status/1497...https://t.co/dH2UEUbKSTSun Feb 27 18:08:15 +0000 2022
4@Vitaliy_Klychko⚡️Володимир Кличко звернувся до демократичного...753765850323010https://twitter.com/Vitaliy_Klychko/status/149...https://t.co/mt5Jmmu6hrSat Feb 26 14:07:04 +0000 2022
5@bohdandjХарків. Гради по житлових кварталах https://t....016313https://twitter.com/bohdandj/status/1498259024...https://t.co/Q7iMxRqD9nMon Feb 28 11:29:22 +0000 2022
6@NCherkasyЧіназес))) https://t.co/mpId8LHBxq0506https://twitter.com/NCherkasy/status/149825897...https://t.co/mpId8LHBxqMon Feb 28 11:29:10 +0000 2022
7@ArmedForcesUkrПРОПОЗИЦІЯ ДЛЯ 🇷🇺 ОКУПАНТІВ! https://t.co/JegD...51774771960https://twitter.com/ArmedForcesUkr/status/1498...https://t.co/JegDKXqELqSun Feb 27 20:31:34 +0000 2022
8@ukrpravda_newsРосіяни обстріляли Харків https://t.co/tj3DgDSAZl437123https://twitter.com/ukrpravda_news/status/1498...https://t.co/tj3DgDSAZlMon Feb 28 11:23:19 +0000 2022
9@ArmedForcesUkrХарків ❗❗❗ https://t.co/qD2RmqbsiY51007204https://twitter.com/ArmedForcesUkr/status/1498...https://t.co/qD2RmqbsiYMon Feb 28 11:26:19 +0000 2022
\n", "
" ], "text/plain": [ " username tweet \\\n", "0 @ArmedForcesUkr Привіт від Харківських танкістів! \\nСЛАВА УКРА... \n", "1 @ian_tanya Російські окупаційні війська зайшли в місто Ге... \n", "2 @olehbatkovych Пояснення чому не було брифінгу Путіна https:/... \n", "3 @ArmedForcesUkr Байрактари в роботі. Наші оператори ювелірно к... \n", "4 @Vitaliy_Klychko ⚡️Володимир Кличко звернувся до демократичного... \n", "5 @bohdandj Харків. Гради по житлових кварталах https://t.... \n", "6 @NCherkasy Чіназес))) https://t.co/mpId8LHBxq \n", "7 @ArmedForcesUkr ПРОПОЗИЦІЯ ДЛЯ 🇷🇺 ОКУПАНТІВ! https://t.co/JegD... \n", "8 @ukrpravda_news Росіяни обстріляли Харків https://t.co/tj3DgDSAZl \n", "9 @ArmedForcesUkr Харків ❗❗❗ https://t.co/qD2RmqbsiY \n", "\n", " replay retweet retweet comments like \\\n", "0 91 917 62 3884 \n", "1 139 2535 495 9455 \n", "2 38 425 19 1996 \n", "3 736 5288 1025 20738 \n", "4 753 7658 503 23010 \n", "5 0 16 3 13 \n", "6 0 5 0 6 \n", "7 51 774 77 1960 \n", "8 4 37 1 23 \n", "9 5 100 7 204 \n", "\n", " media link \\\n", "0 https://twitter.com/ArmedForcesUkr/status/1498... https://t.co/KMbO1eD2LF \n", "1 https://twitter.com/ian_tanya/status/149684513... https://t.co/Lp95AJu1Tk \n", "2 https://twitter.com/olehbatkovych/status/14979... https://t.co/j5c8f6x3Dn \n", "3 https://twitter.com/ArmedForcesUkr/status/1497... https://t.co/dH2UEUbKST \n", "4 https://twitter.com/Vitaliy_Klychko/status/149... https://t.co/mt5Jmmu6hr \n", "5 https://twitter.com/bohdandj/status/1498259024... https://t.co/Q7iMxRqD9n \n", "6 https://twitter.com/NCherkasy/status/149825897... https://t.co/mpId8LHBxq \n", "7 https://twitter.com/ArmedForcesUkr/status/1498... https://t.co/JegDKXqELq \n", "8 https://twitter.com/ukrpravda_news/status/1498... https://t.co/tj3DgDSAZl \n", "9 https://twitter.com/ArmedForcesUkr/status/1498... https://t.co/qD2RmqbsiY \n", "\n", " time \n", "0 Mon Feb 28 05:04:27 +0000 2022 \n", "1 Thu Feb 24 13:51:04 +0000 2022 \n", "2 Sun Feb 27 15:10:59 +0000 2022 \n", "3 Sun Feb 27 18:08:15 +0000 2022 \n", "4 Sat Feb 26 14:07:04 +0000 2022 \n", "5 Mon Feb 28 11:29:22 +0000 2022 \n", "6 Mon Feb 28 11:29:10 +0000 2022 \n", "7 Sun Feb 27 20:31:34 +0000 2022 \n", "8 Mon Feb 28 11:23:19 +0000 2022 \n", "9 Mon Feb 28 11:26:19 +0000 2022 " ] }, "execution_count": 444, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ru_uk.head(10)" ] } ], "metadata": { "interpreter": { "hash": "aee8b7b246df8f9039afb4144a1f6fd8d2ca17a180786b69acc140d282b71a49" }, "kernelspec": { "display_name": "Python 3.6.8 64-bit", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.8" }, "orig_nbformat": 4 }, "nbformat": 4, "nbformat_minor": 2 }