2013-02-18 96 views
0

當我嘗試微博使用此代碼抓取:如何使用Python抓取Twitter頁面?

import urllib2 
s = "https://mobile.twitter.com/bing/" 
html = urllib2.urlopen(s).read() 
print html 

...我收到以下錯誤:

Traceback (most recent call last): 
    File "C:\Users\arpit\Downloads\Desktop\Wiki Code\final Crawler_wiki.py", line 14, in <module> 
    html = urllib2.urlopen(s).read() 
    File "C:\Python27\lib\urllib2.py", line 126, in urlopen 
    return _opener.open(url, data, timeout) 
    File "C:\Python27\lib\urllib2.py", line 400, in open 
    response = self._open(req, data) 
    File "C:\Python27\lib\urllib2.py", line 418, in _open 
    '_open', req) 
    File "C:\Python27\lib\urllib2.py", line 378, in _call_chain 
    result = func(*args) 
    File "C:\Python27\lib\urllib2.py", line 1215, in https_open 
    return self.do_open(httplib.HTTPSConnection, req) 
    File "C:\Python27\lib\urllib2.py", line 1177, in do_open 
    raise URLError(err) 
URLError: <urlopen error [Errno 10061] No connection could be made because the target machine actively refused it> 

如果我更換mobile.twitter.comtwitter.com那麼它的工作原理,但我希望它與mobile.twitter.com一起工作。

+0

你爲什麼要抓取手機twitter網站? Twitter有一個記錄良好的API,它爲您提供了一切,並且有許多Python客戶端庫。 – 2013-02-19 03:57:13

回答

0

該twitter站點可能正在尋找一個用戶代理,當您通過urllib api發出請求時,您沒有設置該用戶代理。

您可能需要使用諸如mechanize之類的東西來僞造您的用戶代理。

但我強烈建議您使用twitter api,它提供了很多簡單而又棒的方式來玩數據。

+0

我也嘗試過Python-twitter Api和Twython。兩者都給出了相同的錯誤代碼。我在一個代理後面,我想那會導致麻煩。 我也爲twitter API發佈了一個新的http://stackoverflow.com/questions/14951901/unable-to-get-data-using-python-twitter-api。 – 2013-02-19 07:25:37

+0

@ArpitAgarwal我想把這個標記爲已經解決了那些想要通過防火牆問題刮掉twitter移動設備的人。 – myusuf3 2013-02-19 14:53:32