Python 3.5.2, Tweepy 3.5.0, Windows 8.1Warum gibt Tweepy mit Python 3 überhaupt keine Daten aus einem Stream zurück?
Ich bin ein Tutorial von Sentdex, die zeigt, wie Sie Daten von Twitter mit Tweepy streamen. (Sein Tutorial ist in Python 2, aber es ist ziemlich einfach zu Python 3-ify es)
Allerdings, wenn ich das Skript ausführen, spuckt es keine Daten aus. Es bleibt hängen, bis ich eine 3-Wege-IncompleteRead-Ausnahme erhalte, oder bis ich Strg + C tue.
Hier ist meine Zuhörer Klassencode:
class listener(StreamListener):
def on_date(self,data):
try:
print(data)
save = open('twitDB.csv', 'a')
save.write(data)
save.write('\n')
save.close()
return True
except BaseException as e:
print('failed on data,',str(e))
time.sleep(5)
def on_error(self,status):
print(status)
auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken,asecret)
twitterStream = Stream(auth=auth, listener=listener())
twitterStream.filter(track=["car"])
Wie Sie sehen können, habe ich es einrichten Fehler und Druckdaten aus zu fangen, während es in eine CSV speichern, aber sie nicht wirklich etwas tun , hängt einfach.
Auch für den Track, habe ich versucht, etwas weniger allgemein zu verwenden, aber es immer noch gehängt.
Wenn KeyboardInterrupt angehoben wird:
Traceback (most recent call last):
File "C:\Program Files\Python35\lib\site-packages\requests\packages\urllib3\co
ntrib\pyopenssl.py", line 217, in recv_into
return self.connection.recv_into(*args, **kwargs)
File "C:\Program Files\Python35\lib\site-packages\OpenSSL\SSL.py", line 1352,
in recv_into
self._raise_ssl_error(self._ssl, result)
File "C:\Program Files\Python35\lib\site-packages\OpenSSL\SSL.py", line 1167,
in _raise_ssl_error
raise WantReadError()
OpenSSL.SSL.WantReadError
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "twittertest.py", line 33, in <module>
twitterStream.filter(track=["car"])
File "C:\Program Files\Python35\lib\site-packages\tweepy\streaming.py", line 4
45, in filter
self._start(async)
File "C:\Program Files\Python35\lib\site-packages\tweepy\streaming.py", line 3
61, in _start
self._run()
File "C:\Program Files\Python35\lib\site-packages\tweepy\streaming.py", line 2
63, in _run
self._read_loop(resp)
File "C:\Program Files\Python35\lib\site-packages\tweepy\streaming.py", line 3
13, in _read_loop
line = buf.read_line().strip()
File "C:\Program Files\Python35\lib\site-packages\tweepy\streaming.py", line 1
79, in read_line
self._buffer += self._stream.read(self._chunk_size)
File "C:\Program Files\Python35\lib\site-packages\requests\packages\urllib3\re
sponse.py", line 310, in read
data = self._fp.read(amt)
File "C:\Program Files\Python35\lib\http\client.py", line 448, in read
n = self.readinto(b)
File "C:\Program Files\Python35\lib\http\client.py", line 478, in readinto
return self._readinto_chunked(b)
File "C:\Program Files\Python35\lib\http\client.py", line 573, in _readinto_ch
unked
chunk_left = self._get_chunk_left()
File "C:\Program Files\Python35\lib\http\client.py", line 541, in _get_chunk_l
eft
chunk_left = self._read_next_chunk_size()
File "C:\Program Files\Python35\lib\http\client.py", line 501, in _read_next_c
hunk_size
line = self.fp.readline(_MAXLINE + 1)
File "C:\Program Files\Python35\lib\socket.py", line 575, in readinto
return self._sock.recv_into(b)
File "C:\Program Files\Python35\lib\site-packages\requests\packages\urllib3\co
ntrib\pyopenssl.py", line 230, in recv_into
[self.socket], [], [], self.socket.gettimeout())
KeyboardInterrupt
Es ist mein erstes Mal mit einem Social-Media-API gehen, so dass ich entschuldige mich, wenn ich offensichtlich etwas fehlt bin. Hilfe wäre willkommen, danke.
waren Sie die Frage löschen können, wenn Sie wollen –