2015-12-08 36 views
0

我認爲我的大學最近更改了防火牆或過濾協議與Twitter的流媒體API。但是,爲了給他們提供更多的信息,我必須弄清楚細節。Tweepy:試圖檢測大學過濾器或防火牆

好吧,下面是一個最簡單的程序,從Twitter的數據流採集數據:

from tweepy import Stream 
from tweepy import OAuthHandler 
from tweepy.streaming import StreamListener 


ckey="[OMITED]" 
csecret="[OMITED]" 
atoken="[OMITED]" 
asecret="[OMITED]" 

class listener(StreamListener): 

    def on_data(self, data): 
     print(data) 
     return(True) 

    def on_error(self, status): 
     print status 

auth = OAuthHandler(ckey, csecret) 
auth.set_access_token(atoken, asecret) 

twitterStream = Stream(auth, listener()) 
twitterStream.filter(track=["car"]) 

當我我的筆記本電腦/家用臺式機上運行此程序,它工作正常。不過,我有一所大學的計算機安裝了數據採集和它產生以下錯誤:現在

Traceback (most recent call last): 
    File "test.py", line 25, in <module> 
    twitterStream.filter(track=["car"]) 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tweepy/streaming.py", line 228, in filter 
    self._start(async) 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tweepy/streaming.py", line 172, in _start 
    self._run() 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/tweepy/streaming.py", line 106, in _run 
    conn.connect() 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/httplib.py", line 1278, in connect 
    server_hostname=server_hostname) 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 352, in wrap_socket 
    _context=self) 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 579, in __init__ 
    self.do_handshake() 
    File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 808, in do_handshake 
    self._sslobj.do_handshake() 
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) 

的事情是,我可以打開Safari瀏覽器和瀏覽網頁。此外,像這樣的數據收集工作(截至一個月前)。錯誤表示SSL證書驗證失敗(但奇怪的是,原始的OAuth似乎正常工作 - 這是過濾器命令填補了錯誤)。如果那是因爲中間證書已經到位,是否有辦法讓它吐出?或者也許一個端口被阻止?基本上,有沒有辦法獲得更多的細節,所以我可以去大學並說:'你阻止X'?

有什麼建議嗎?

回答

0

我解決了這個問題。這是與使用Digicerts簽名的SSL網站相關的錯誤。