Skrobanie danych z Twittera za pomocą Pythona [z 2 API]
Opublikowany: 2020-11-30Spis treści
Wstęp
Platformy mediów społecznościowych, takie jak Twitter, są jednym z najlepszych repozytoriów do gromadzenia zbiorów danych. Praca nad nowym projektem data science wymaga sporej ilości danych, a zebranie zestawu danych nie jest łatwym zadaniem.
A Twitter zapewnia zróżnicowany gatunek danych, ponieważ jest zbiorem tweetów od ludzi o różnym sposobie myślenia i odmiennych sentymentach. Ten rodzaj zestawu danych bez uprzedzeń jest bardzo potrzebnym warunkiem wstępnym uczenia nowego modelu uczenia maszynowego.
Zacznijmy!
Przejdziemy przez 2 interfejsy API do scrapingu danych z Twittera.
- Tweepy
- Twint
Tweepy
Zanim zaczniemy przechodzić przez kod Pythona do scrapingu danych za pomocą Tweepy API, musisz wiedzieć, że potrzebujemy poświadczeń konta programisty na Twitterze i to bułka z masłem, jeśli już je masz.
Osoby, które nie mają konta programisty, mogą złożyć wniosek tutaj . A przed złożeniem wniosku o konto programisty musisz mieć konto na Twitterze. Ubieganie się o konto programisty jest łatwym procesem, a aplikacja zadaje kilka podstawowych pytań, takich jak powód zgłoszenia itp. Zatwierdzenie konta programisty trwa zazwyczaj 2-3 dni.
Po otrzymaniu zatwierdzenia konta programisty zanotuj swoje klucze API klienta, token dostępu i tajny token dostępu z sekcji „klucze i tokeny”.
Należy również zauważyć, że istnieje niewiele ograniczeń dotyczących tweepy, na przykład możesz zeskrobać tylko tweety, które nie są starsze niż tydzień. I limit skrobania, do 18 000 tweetów w ciągu 15 minut.
Świetnie, teraz, gdy mamy klucze i tokeny z konta programisty, autoryzujmy je.
Consumer_key = “ Twój klucz klienta ” Consumer_secret = “ Twój sekret klienta ” access_token = “ Twój token dostępu ” access_token_secret = “ Twój klucz tajny ” autoryzacja = tweepy.OAuthHandler(consumer_key, consumer_secret) author.set_access_token(access_token, access_token_secret) api = tweepy.API(autoryzacja,wait_on_rate_limit = True ) |
Teraz, gdy dokonaliśmy autoryzacji za pomocą naszych danych uwierzytelniających, zeskrobujmy tweety z konkretnego konta. Na razie zeskrobajmy tweety pana Sundara Pichaia.
nazwa użytkownika = ' sundarpichai ' liczba = 100 spróbuj : #linia 1 tweets_obj = tweepy.Kursor(api.user_timeline,id = nazwa użytkownika).items(liczba) #linia 2 tweets_list = [[tweet.created_at, tweet.id, tweet.text] dla tweeta w tweets_obj] #linia3 tweets_df = pd.DataFrame(tweets_list) z wyjątkiem BaseException jako e: print ( ' coś poszło nie tak, ' , str (e)) |
W powyższym fragmencie line1 tworzy iterowalny obiekt ze wszystkimi tweetami i jest przypisywany do zmiennej „tweets_obj”. Kiedy skończymy tworzyć iterowalny obiekt, przeprowadźmy iterację i wyodrębnijmy wszystkie dane.
Wyodrębniamy tylko kilka atrybutów, takich jak „created_at”, „id”, „tekst” i dołączamy je do każdego wpisu w tablicy 2D. Gdzie każdy wpis zawiera wszystkie dane każdego tweeta, który zeskrobaliśmy. Teraz, gdy mamy tablicę 2D z atrybutami jako każdy wpis, możemy przekonwertować ją na ramkę danych za pomocą składni „pd.DataFrame()”.
Powodem przekonwertowania tablicy na ramkę danych jest większa elastyczność, dostępność predefiniowanych metod i łatwy dostęp, który wyróżnia ją spośród wszystkich struktur danych w projektach z zakresu analizy danych.
Podobnie, przejdźmy przez kod do scrapingu danych, który ma określone zapytanie tekstowe.
text_query = ' wokal dla lokalnego ' liczba = 100 spróbuj : #linia 1 tweets_obj = tweepy.Kursor(api.search,q = text_query).items(liczba) #linia 2 tweets_list = [[tweet.created_at, tweet.id, tweet.text] dla tweeta w tweets_obj] #linia3 df = pd.DataFrame(tweets_list) z wyjątkiem BaseException jako e: print ( ' coś poszło nie tak, ' , str (e)) |
W powyższym fragmencie wszystko jest takie samo jak w poprzednim fragmencie. W końcu utworzyliśmy ramkę danych ze wszystkimi tweetami zawierającymi zapytanie tekstowe „vocal for local”.
Jeśli szukasz bardziej szczegółowego lub dostosowanego do scrapingu danych, takiego jak dodanie większej liczby atrybutów, takich jak liczba retweetów, liczba ulubionych itp. Możemy dostosować naszą składnię i wyodrębnić inne atrybuty dostarczone przez tweepy. Więcej informacji na temat innych atrybutów oferowanych przez tweepy można znaleźć w dokumentacji .
Twint
Twint API nie wymaga żadnych danych logowania do konta programisty, możesz łatwo zeskrobać tweety bez żadnych kluczy autoryzacyjnych. Ponadto twint nie ma żadnych ograniczeń, takich jak liczba tweetów, ramy czasowe, limity skrobania itp. Twint zapewnia płynne skrobanie danych i łatwy w użyciu interfejs API.
Możemy wydrukować listę obserwujących osobę, używając jej nazwy użytkownika z API twint.
t_obj = twint.Config() t_obj.Username = “ sundarpichai “ twint.run.Followers(t_obj) |
W powyższym fragmencie twint.Config() konfiguruje interfejs API twint i sprawia, że wszystko zaczyna się. A po przypisaniu obiektu możemy użyć tego odniesienia do naszej pracy, „t_obj.Nazwa użytkownika” przypisuje nazwę użytkownika, którą wprowadziliśmy. A twint.run.Followers przeszukuje wszystkich obserwujących tę nazwę użytkownika.

Możemy również przechowywać zeskrobane dane w ramce danych podobnej do tweepy API.
t_obj.Limit = 100 t_obj.Username = “ sundarpichai “ t_obj.Pandy = Prawda twint.run.Followers(t_obj) wynik_df = twint.storage.panda.User_df |
Wszystko we fragmencie jest prawie takie samo jak w poprzednim fragmencie, tylko z dodatkowym wierszem składni „twint.storage.panda.User_df”, który konwertuje zeskrobane dane do ramki danych. Ramka danych wynikowych składa się z listy obserwujących podaną nazwę użytkownika.
Teraz, gdy widzieliśmy skrobanie danych obserwujących o określonej nazwie użytkownika, przyjrzyjmy się kodowi do skrobania tweetów określonego konta.
t_obj.Search = “ from:@sundarpichai ” t_obj.Store_object = Prawda t_obj.Limit = 20 twint.run.Search(t_obj) tweety = t.search_tweet_list drukuj (tweety) |
W powyższym fragmencie tworzymy skonfigurowany obiekt do wyszukiwania tweetów konkretnej osoby, możemy również ustawić limit tweetów podczas scrapingu za pomocą składni „t_obj.Limit”. Po uruchomieniu wyszukiwania tworzy listę wszystkich tweetów i możemy przypisać ją do zmiennej lokalnej zgodnie z naszymi potrzebami.
Po obejrzeniu fragmentów informacji o skrobaniu konkretnego konta możesz mieć szybkie pytanie, jak zdrapać tweety zawierające określone słowo kluczowe?. Nie problem twint ma na to rozwiązanie.
t_obj.Search = “ nauka o danych “ t_obj.Store_object = Prawda t_obj.Limit = 100 twint.run.Search(t_obj) tweety = t.search_tweet_list drukuj (tweety) |
Powyższy fragment jest taki sam, jak fragment służący do pobierania tweetów z konkretnego konta, z jedną różnicą w wierszu1. Możemy również przekonwertować go na ramkę danych według naszej wygody.
Aby dowiedzieć się więcej na temat API twint, zajrzyj do ich repozytorium i dokumentacji .
Wniosek
Zrozumieliśmy znaczenie skrobania danych. Przeszedłem przez dwa interfejsy API i ich funkcje do zgarniania danych z Twittera. Widziałem kilka metod konwersji zeskrobanych danych do wymaganego formatu pliku. Teraz, gdy znasz już te interfejsy API, zacznij zbierać dane do swoich projektów dotyczących analizy danych!
My w upGrad z przyjemnością Ci pomożemy i chcielibyśmy również poinformować Cię o możliwościach, jakie możesz mieć dzięki nauce Pythona. Python jest szeroko stosowany w Machine Learning i Data Science, dwóch najpopularniejszych i rozwijających się technologiach. Nauka Pythona, a także znajomość tych umiejętności sprawi, że będziesz wyróżniać się w swojej dziedzinie i uzyskasz lepsze możliwości kariery.
Mamy wiele kursów opracowanych wraz z ekspertami branżowymi i najlepszymi instytutami akademickimi, aby zapewnić Ci wszystkie umiejętności wymagane do osiągnięcia doskonałości w tej dziedzinie. Niektóre z kursów, które mogą pomóc Ci wykorzystać Twoją wiedzę w Pythonie i zwiększyć Twoje perspektywy zawodowe:
Nauka o danych:
Sprawdź Online Data Science Programs firmy upGrad opracowane z IIIT-B, jest to pełnoprawny kurs nauki o danych, który pozwala wejść w tę dziedzinę i zaznaczyć swoją wiedzę w branżach.
Masters of Science in Data Science : Opracowany we współpracy z Liverpool John Moores University i IIIT-B, uzyskał tytuł magistra nauk o danych na jednym z najlepszych uniwersytetów na świecie.
Nauczanie maszynowe:
Zaawansowana certyfikacja w uczeniu maszynowym i sztucznej inteligencji : IIT madras, jedna z najlepszych instytucji edukacyjnych w Indiach, nawiązała współpracę z upGrad, aby stworzyć zaawansowany kurs uczenia maszynowego dla osób fizycznych, aby dzięki temu kursowi mieli pełną wiedzę na temat uczenia maszynowego.
Masters of Science in Machine Learning i AI : Liverpool John Moores University i IIIT-B nawiązały współpracę z upGrad, aby zapewnić pełne stopnie magisterskie dla osób, które mogą szczegółowo poznać technologię i uzyskać formalny stopień naukowy w tej technologii, aby zapewnić sukces ścieżkę w tym polu.
Dyplom PG w zakresie uczenia maszynowego i sztucznej inteligencji : IIIT-B i upGrad połączyły się, aby pomóc osobom indywidualnym uzyskać możliwość odbycia 12-miesięcznego kursu na temat uczenia maszynowego i sztucznej inteligencji i mieć szansę na wejście do tej technologii dzięki temu kursowi.
Co to jest zbieranie danych?
Skrobanie danych odnosi się do procesu, w którym oprogramowanie komputerowe pobiera dane z danych wyjściowych utworzonych przez inny program. Web scraping to rodzaj skrobania danych, który służy do zbierania danych lub informacji z różnych witryn internetowych. W web scrapingu aplikacja służy do zbierania cennych informacji ze strony internetowej. Program web scraping może szybko i łatwo uzyskać dostęp do WWW (World Wide Web) za pomocą HTML (Hypertext Transfer Protocol) lub przeglądarki internetowej.
Dlaczego scraping danych jest konieczny na Twitterze?
Zbieranie danych w mediach społecznościowych pomaga w śledzeniu, ocenie i analizie danych dostępnych na platformach. Twitter to najpopularniejsza platforma, a zbieranie danych z Twittera pomaga użytkownikom analizować zachowanie użytkowników, strategię konkurencji, analizę sentymentu i być na bieżąco z tym, co dzieje się w najpopularniejszym na świecie kanale społecznościowym z tweetów osób, rówieśników i firm, które mają dla ciebie znaczenie. Usługa pobierania danych z Twittera obsługuje Twoje potrzeby od końca do końca w najkrótszym czasie i zapewnia niezbędne dane. Na przykład Twitter pozwala robotom indeksującym zbierać dane za pośrednictwem swojego interfejsu API tylko w celu ograniczenia ilości informacji o swoich użytkownikach i ich działaniach.
Co to są interfejsy API?
Interfejsy programowania aplikacji to maleńkie fragmenty kodu, które umożliwiają komunikowanie się urządzeń cyfrowych, programów i serwerów danych, a także stanowią kluczowy szkielet wielu usług, na których obecnie polegamy. API łączy ze sobą komputery lub fragmenty oprogramowania, w przeciwieństwie do interfejsu użytkownika, który łączy komputer z człowiekiem. Nie jest przeznaczony do bezpośredniego użytku przez kogokolwiek (użytkownika końcowego) poza programistą komputerowym, który włącza go do oprogramowania. API często składa się z wielu komponentów, które służą programiście jako narzędzia lub usługi.