摘要:始終返回錯(cuò)誤也是最近剛接觸打算用來(lái)爬一爬學(xué)校的信息門(mén)戶海報(bào)因?yàn)閷W(xué)校的海報(bào)有的是文字又有的是圖片,圖片的鏈接也比較奇怪所以希望直接把網(wǎng)頁(yè)的內(nèi)容部分截圖下來(lái),因?yàn)樾枰顷懀孕枰玫健?傊褪请m然它返回,但是實(shí)際上操作是成功了的完
Phantomjs v.2.1 addCookie()始終返回錯(cuò)誤
也是最近剛接觸Phantomjs,打算用來(lái)爬一爬學(xué)校的信息門(mén)戶海報(bào)(因?yàn)閷W(xué)校的海報(bào)有的是文字又有的是圖片,圖片的鏈接也比較奇怪:
my.**.edu.cn/attachmentDownload.portal?xxxxxxxxxxxxx
所以希望直接把網(wǎng)頁(yè)的內(nèi)容部分截圖下來(lái),因?yàn)樾枰顷懀孕枰玫絚ookies。然后我由官方API文件 http://phantomjs.org/api/知道了可以用 phantom.addCookie() 來(lái)添加cookies。
var login1 = { "name": "Login.Token1", "value": "15***227", "path": "/", } if (phantom.addCookie(login1)) { console.log("Cookie_login1 success") } else { console.log("Fail") } //............Fail
可是再實(shí)際用的時(shí)候發(fā)現(xiàn)怎么都不成功,永遠(yuǎn)都是Fail
因?yàn)楦杏X(jué)后面的敘述有些啰嗦以及些許的語(yǔ)焉不詳,所以先上結(jié)論:
雖然它返回false,但是實(shí)際上操作是成功了的!
一開(kāi)始以為是添加的Cookie有問(wèn)題于是乎我到看到這個(gè)文章phantomjs截圖的實(shí)踐——
雖然他這么說(shuō)可是官方文件里面沒(méi)有這么說(shuō)——
不過(guò)在介紹 "webpage" 類的 ‘a(chǎn)ddCookie’ 的時(shí)候有說(shuō)明——
好吧,那就弄吧,于是我改成了這樣
var login1 = { "name": "Login.Token1", "value": "15***227", "path": "/", "domain":"https://www.baidu.com" //呵呵 } if (phantom.addCookie(login1)) { console.log("Cookie_login1 success") } else { console.log("Fail") //............Fail
還是失敗!我去怎么回事!(當(dāng)然有同學(xué)可能已經(jīng)發(fā)現(xiàn)這里的問(wèn)題了。)
但無(wú)論如何......
后來(lái)我去Google找(吐槽一下,我本來(lái)還以為中國(guó)國(guó)內(nèi)討論技術(shù)的挺多的了,可是去搜phantomjs——少!太少了!)
于是在phantomjs的github官網(wǎng)上看到了這個(gè)今年三月的issues
那個(gè)....我升級(jí)到了v2.1,addcookies怎么老說(shuō)失敗啊
——恩,看來(lái)是個(gè)bug呢,在這里糾結(jié)了挺長(zhǎng)時(shí)間的我說(shuō)了一句“窩草”。
額,我英語(yǔ)不太好,帖子后面說(shuō)"fixed",我就以為已經(jīng)修復(fù)了,于是打算去升級(jí) phantomjs。我再下了一遍官網(wǎng)的版本,可是問(wèn)題還是在。
我就回帖子去,發(fā)現(xiàn)修復(fù)修復(fù)到了phantomas——‘what!這是什么?’(百度也沒(méi)有告訴我。),個(gè)人感覺(jué)上像是試驗(yàn)田這類東西。
我又去用npm,brew,pip去嘗試
npm 下不下來(lái)=。=
brew 里面更新沒(méi)反應(yīng)
pip 這個(gè).....
——后來(lái),后來(lái),后來(lái)
var login1 = { "name": "Login.Token1", "value": "15***227", "path": "/", "domain":"baidu.com" //這里! 這里 } if (phantom.addCookie(login1)) { console.log("Cookie_login1 success") } else { console.log("Fail") //............Fail
"domain" 好像不可以加協(xié)議(http:// https:// ftp://)【猜測(cè)】
不過(guò)最后還是Fail
就是這個(gè)時(shí)候我他媽想起來(lái),
那個(gè)....我升級(jí)到了v2.1,addcookies怎么老說(shuō)失敗啊的標(biāo)題是:
addCookie always returns false in v2.1.1 #14047
用的是——return,return,return......
不是——fail,fail,fail
所以有可能實(shí)際上操作成功了,不過(guò)返回失敗。
var login1 = { "name": "Login.Token1", "value": "15***227", "path": "/", "domain":"baidu.com" //這里! 這里 } if (phantom.addCookie(login1)) { console.log("Cookie_login1 success") } else { console.log("Fail") cookies = phantom.cookies console.log("Listing cookies:"); for(var i in cookies) { console.log(cookies[i].name + "=" + cookies[i].value); } //............Fail....... //but return sometime! //好日子 好日子 //啦啦啦?(^?^*)
真的是這樣的。
總之就是雖然它返回false,但是實(shí)際上操作是成功了的!
【完】
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/79588.html
摘要:有一個(gè)模塊其中實(shí)現(xiàn)了一個(gè)。但是感覺(jué)靈活性不大。接口如下它會(huì)獲得一個(gè)實(shí)例,你可以在里面進(jìn)行任意的操作。本部分到此結(jié)束。 webmagic有一個(gè)selenium模塊,其中實(shí)現(xiàn)了一個(gè)SeleniumDownloader。但是感覺(jué)靈活性不大。所以我就自己參考實(shí)現(xiàn)了一個(gè)。 首先是WebDriverPool用來(lái)管理WebDriver池: import java.util.ArrayList; im...
摘要:還是直接貼代碼說(shuō)明比較實(shí)在。重新調(diào)整窗口大小,以適應(yīng)頁(yè)面,需要耗費(fèi)一定時(shí)間。建議等待合理的時(shí)間。負(fù)責(zé)摳圖指定坐標(biāo)不保持比例,調(diào)用進(jìn)程,返回識(shí)別結(jié)果。 還是直接貼代碼說(shuō)明比較實(shí)在。感覺(jué)webmagic-selenium這個(gè)模塊有點(diǎn)雞肋,但還是有可借鑒之處。借鑒它寫(xiě)了一個(gè)SeleniumDownloader,如下: import org.openqa.selenium.By; import...
摘要:使用生成靜態(tài)頁(yè),再配置在爬蟲(chóng)訪問(wèn)時(shí)提供靜態(tài)頁(yè)中的內(nèi)容。如何在爬蟲(chóng)訪問(wèn)時(shí)讓爬蟲(chóng)獲取到靜態(tài)頁(yè)中的內(nèi)容要演練此部分內(nèi)容,首先你要把網(wǎng)站用部署。 Angular 的優(yōu)點(diǎn)有很多,但如果用它來(lái)開(kāi)發(fā)網(wǎng)站的話,就不得不面對(duì)它的兩大缺點(diǎn): 首頁(yè)加載慢 搜索引擎的爬蟲(chóng)獲取不到頁(yè)面內(nèi)容 由于 Angular 是通過(guò) js 動(dòng)態(tài)生成 dom 并插入到頁(yè)面中,搜索引擎默認(rèn)只能獲得頁(yè)面的標(biāo)題。我們可以使用 c...
摘要:最近在看,打算跟著書(shū)中的代碼敲一遍,加深對(duì)的理解。在這里記錄過(guò)程中的問(wèn)題與心得。根據(jù)排查內(nèi)存耗盡應(yīng)該是這個(gè)版本的問(wèn)題,換成后問(wèn)題消失。因此認(rèn)為這種寫(xiě)法是有風(fēng)險(xiǎn)的,必須用頂上那一行注釋表明我確實(shí)要全局都的才行。不得不感嘆的嚴(yán)謹(jǐn)。 最近在看 build your own angularjs ,打算跟著書(shū)中的代碼敲一遍,加深對(duì)AngularJS的理解。在這里記錄過(guò)程中的問(wèn)題與心得。 Int...
摘要:變量如果用戶目錄下存在,比如我的,則添加一行否則新建然后在添加上文在中輸入如果可以看到版本號(hào),則安裝成功。 PhantomJS 安裝 showImg(https://segmentfault.com/img/bVL0NY?w=408&h=252); Mac OS X && Windows 1、PhantomJS下載地址 按照系統(tǒng)下載對(duì)應(yīng)的版本, macOS 下載: phantomjs...
閱讀 2996·2021-11-23 09:51
閱讀 2817·2021-11-11 16:55
閱讀 2926·2021-10-14 09:43
閱讀 1402·2021-09-23 11:22
閱讀 1044·2019-08-30 11:04
閱讀 1673·2019-08-29 11:10
閱讀 965·2019-08-27 10:56
閱讀 3115·2019-08-26 12:01