Python Geo Scrape с использованием Tweepy - PullRequest
0 голосов
/ 22 января 2020

Я работаю с Twitter API и tweepy в надежде получить доступ к координатам геолокации из твитов. Моя конечная цель - хранить только координаты каждого твита в таблице.

Моя проблема заключается в том, что при размещении твитов я сталкиваюсь с ошибкой, когда предоставляется больше информации, чем координат:

earlier attempt

Мой код на данный момент выглядит следующим образом:


import pandas as pd
import json
import tweepy
import csv

class MyStreamListener(tweepy.StreamListener):

    def on_status(self, status):

        if status.retweeted:
            return

        if True:

            coords = status.coordinates
            geo = status.geo

        if geo is not None:
            geo = json.dumps(geo)

        if coords is not None:
            coords = json.dumps(coords)    

            print(coords, geo)
            with open('coordinates_data.csv', 'a') as f:
                writer = csv.writer(f)
                writer.writerow([coords,geo])


    def on_error(self, status_code):
        if status_code == 420:
            #returning False in on_error disconnects the stream
            return False

LOCATIONS = [-124.7771694, 24.520833, -66.947028, 49.384472,        # Contiguous US
                 -164.639405, 58.806859, -144.152365, 71.76871,         # Alaska
                 -160.161542, 18.776344, -154.641396, 22.878623]        # Hawaii

auth = tweepy.OAuthHandler('access auths', 'access auths')
auth.set_access_token('token','token')

api = tweepy.API(auth)
user = api.me()

myStreamListener = MyStreamListener()
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)  
myStream.filter(locations=LOCATIONS)

Я уверен, что эта проблема связана с моим отсутствием понимания 'json', или что мне нужно использовать словарь данных.

Буду признателен за любую помощь!

1 Ответ

0 голосов
/ 22 января 2020

Просто чтобы уточнить, Tweepy - это сторонняя библиотека, которая взаимодействует с API Twitter.

Именно так Twitter представляет координаты объектов . Tweepy анализирует атрибут coordinates данных Status / объекта Tweet в качестве словаря. Вы можете просто получить доступ к полю coordinates в качестве ключа для этого словаря, чтобы получить список со значениями долготы и широты.

У вас также отсутствует пропущенная кавычка ', где вы инициализируете auth , но я предполагаю, что это опечатка, когда вы заменили свои учетные данные для этого вопроса.

...