最新回答 / 小楠仔子
你說的js頁面應該是指動態加載數據的js方法,而這些js調用方法一般會調用特定的API返回json數據,所以直接訪問api然后解析返回的json數據是一種解決方案。我也是初學,有不對的地方見諒。
2016-01-02
已采納回答 / blacksea3
剛看到一個最近的相似的問題-_-||有可能你的try-except中間的print 'craw %d : %s' %(count, new_url)到except那一塊某個地方使用的代碼打錯了而不是self.urls.has_new_url()==0導致的錯誤,python的百科里面是有別的鏈接的,你可以試著把try-except去掉,讓錯誤直接顯示出來中間這一塊指的是:html_cont=self.downloader.download(new_url)new_urls,new_data=self.pa...
2016-01-01
已采納回答 / 螞蟻帥帥
贊思考,改成多線程,要多一些處理:1、設定線程數目為N2、改用multiprocessing.Process方法啟動crawl方法N次,每個線程記錄序號為N;3、修改UrlManger,獲取url的時候,需要提供序號參數,只返回hash(url)%N==0的url,或者干脆維護N個隊列,每個線程單獨使用自己的URL隊列即可;難點在于處理UrlManager和Outputer的多線程沖突,如果數據是存到MySQL,要么使用上面說的線程隔離的方法,要么使用DB加鎖的方式處理沖突;
2015-12-29