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