這段時間由於要做一個系統,時間比較忙,部落格更新的就不及時,有點抱歉,還是說今天的話題把:因為要抓取一些google上面的搜尋結果資料,開始用的是python傳統的擷取資料的方法比如:[python beautifulsoup多線程分析抓取網頁] , [python SGMLParser] 來擷取資料,後來採集了沒多久,google就自動封掉了,期間嘗試過換IP,類比瀏覽器的方法用了一段時間還是不行,看來google防止抓取的功能太強了,正愁沒思路的時候,偶然間在網上看到一個方法就是用google提供的api來或者結果,這樣省時又省力,於是乎就研究起來了,最後10幾行代碼就搞定了,之前我寫了上百行代碼,看來有了python google api來做python 抓取google搜尋結果還是挺爽的。
廢話少說上代碼:
import urllib2,urllib
import simplejson
seachstr = '汽車'
for x in range(5):
print "page:%s"%(x+1)
page = x * 4
url = ('https://ajax.googleapis.com/ajax/services/search/web'
'?v=1.0&q=%s&rsz=8&start=%s') % (urllib.quote(seachstr),page)
try:
request = urllib2.Request(
url, None, {'Referer': 'http://www.sina.com'})
response = urllib2.urlopen(request)
# Process the JSON string.
results = simplejson.load(response)
infoaaa = results['responseData']['results']
except Exception,e:
print e
else:
for minfo in infoaaa:
print minfo['url']
這樣就可以根據搜尋關鍵詞把搜尋結果列表的網址給提取出來,這個 api url可以接受很多參數,如果想去瞭解的話,可以看看具體的python google api 文檔。