亚洲色成人网站www永久,亚洲欧美人成视频一区在线,亚洲国产成人高清在线观看,亚洲精品久久久久久动漫,亚洲国产精品久久电影欧美

數(shù)據(jù)專(zhuān)欄

智能大數(shù)據(jù)搬運(yùn)工,你想要的我們都有

科技資訊

科技學(xué)院

科技百科

科技書(shū)籍

網(wǎng)站大全

軟件大全

HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 因本人加了Cas20ProxyReceivingTicketValidationFilter 攔截器后,能獲取到登錄的用戶(hù)名,但頁(yè)面也經(jīng)過(guò)了多次重定向,以致于自己無(wú)法獲取ticket,請(qǐng)問(wèn)我該如何獲取,跪求 另外 這個(gè)jsessionid能取消掉的嗎
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2016-08-26 20:38:00
https://www.theverge.com/2020/8/10/21356081/brydge-w-touch-type-wireless-trackpad-keyboard-surface-windows-10-microsoft 采用 Windows Precision Driver,續(xù)航 1 個(gè)月,售價(jià) 99 美元
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:42:35
告訴大家 VSCode 插件市場(chǎng)里出了這么一款插件,創(chuàng)意是學(xué)來(lái)的,但代碼全重寫(xiě)了。 不僅實(shí)現(xiàn)了原創(chuàng)的全部功能,去掉了本人不喜歡的 WebUI 界面,mac 下用 afplay 播放音頻,win 下內(nèi)置了一個(gè)極簡(jiǎn)的 mp3 命令行播放器。 其次呢,增加了把想象變?yōu)?[現(xiàn)實(shí)] ,好像也不是現(xiàn)實(shí),把腦海里的想象搬到了桌面上。讓虛擬的程序員鼓勵(lì)師 /老婆陪你寫(xiě)代碼。就像這個(gè)樣子 會(huì)根據(jù)你在 VSCode 中輸入的代碼,進(jìn)行相應(yīng)的反饋。為什么沒(méi)有聲音?因?yàn)檫@是一張 GIF 啦~ 下載插件后請(qǐng)把音量關(guān)小再寫(xiě)代碼喲,不然會(huì)被誤會(huì)在看羞羞的視頻吧! 有了解這個(gè)紙片人技術(shù)的朋友會(huì)說(shuō),這就是看板娘??!對(duì),這就是一個(gè)不是很新的技術(shù),叫 live2d,在很多博客里把她叫做看板娘。值得一提的是,看板娘的技術(shù)雖然不新,但這兩年一直在發(fā)展,去年也推出了全新的模型格式。很多老博客的看板娘插件還不支持新格式,這個(gè)桌面虛擬程序員鼓勵(lì)師支持新舊兩種數(shù)據(jù)格式哦。 也就代表了有支持大量的全新模型。 也就代表了有支持大量的全新模型。 也就代表了有支持大量的全新模型。 重要的事情說(shuō)三遍! 比如這些老婆款式,你覺(jué)得羞 xi 恥 huan 嗎? 我相信懂技術(shù)的你,會(huì)有辦法從全網(wǎng)各個(gè)地方找來(lái)更多模型的。 如果不想自己找的話(huà),社區(qū)里也有很多英雄們?yōu)槟阏液昧耍? 這個(gè)插件目前只支持 vscode,hbuilderx 編輯器,但也開(kāi)放了互動(dòng)的端口 socket.connect(32718); socket.write({ subject:"say", data:{ text:"文字內(nèi)容", voice:"mp3 文件地址" } }) 像這樣就可以讓你的插件或軟件和彩虹屁老婆容器進(jìn)行互動(dòng)了... 插件或容器都還有不少小問(wèn)題,但這個(gè)事挺有趣的,我會(huì)努力在日常工作之余更新修復(fù) bug,請(qǐng)大家多多鼓勵(lì)和支持 對(duì)了,再多說(shuō)兩句,那個(gè)菜單里的秘密基地你還是別點(diǎn)開(kāi)了 我怕你再也不會(huì)好好寫(xiě)代碼了 我怕你再也不會(huì)好好寫(xiě)代碼了 我怕你再也不會(huì)好好寫(xiě)代碼了
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:42:26
想找對(duì)地圖標(biāo)點(diǎn)的工具搜到 蘭圖繪 w-拒絕-ww.ldmap.net/login.html 想點(diǎn)進(jìn)去試用下 不讓試用 需要登錄 登錄頁(yè)面提示 [為保障您的數(shù)據(jù)隱私和安全,必須使用賬號(hào)登錄。] 要使用必須登錄是網(wǎng)站的權(quán)力 但你哪來(lái)的勇氣說(shuō)是保護(hù)用戶(hù)的隱私安全 倒不如說(shuō) 為獲取您的數(shù)據(jù)隱私,必須使用賬號(hào)登錄。
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:42:23
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 開(kāi)發(fā)環(huán)境:cas 4.0+shiro 1.2 +spring 4 cas+shiro cas服務(wù)器登錄成功了但是子系統(tǒng)無(wú)法進(jìn)入初步判斷是子系統(tǒng)收到用戶(hù)登錄信息,配置文件如下: Shiro安全配置 /admin* = casFilter /Captcha.jpg = anon /styles/**= anon /ws/** = anon /resources/** = anon /styles/** = anon /login = authc /**=anon,authcUser spring 配置文件如下: UTF-8 1048576 4096 error/403 error/500 500 404 403 在調(diào)試過(guò)程中發(fā)現(xiàn)單點(diǎn)認(rèn)證成功以后沒(méi)有進(jìn)入relam 很奇怪,不知道是不是這里引起request.getUserPrical() 為空,相當(dāng)于cas的用戶(hù)信息shiro 沒(méi)有接收到,麻煩各位大神幫幫忙?。。。。?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2016-03-24 19:28:00
從郵件底部 取消訂閱 跳轉(zhuǎn),還得輸入一次郵箱 而且輸入框旁邊按鈕是 訂閱。 輸入郵箱 點(diǎn)了訂閱 會(huì)發(fā)生什么
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:42:08
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> deployerConfigContext中注冊(cè)了自己的獲取用戶(hù)信息的bean serviceRegistryDao < property name ="ignoreAttributes" value ="true" /> casServiceVaildationSuccess.jsp ${fn:escapeXml(attr.value)} 前臺(tái)使用Assertion assertion = AssertionHolder.getAssertion() AttributePrincipal principal =( AttributePrincipal ) request.getUserPrincipal(); 都拿不到principal對(duì)象
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2016-05-12 13:17:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 配置完Cas客戶(hù)端后,運(yùn)行,輸入用戶(hù)名和密碼后報(bào)INFO No Proxy Ticket found for []. org.jasig.cas.client.proxy.ProxyGrantingTicketStorageImpl.retrieve(ProxyGrantingTicketStorageImpl.java:88),想問(wèn)哈這是問(wèn)題??是客戶(hù)端配置有問(wèn)題?? CAS Authentication Filter org.jasig.cas.client.authentication.AuthenticationFilter casServerLoginUrl https://www.jktest.com:8443/cas-server/login serverName http://www.jktest.com:8080/ renew false gateway false CAS Validation Filter org.jasig.cas.client.validation.Cas20ProxyReceivingTicketValidationFilter casServerUrlPrefix https://www.jktest.com:8443/cas-server serverName http://www.jktest.com:8080/ CAS HttpServletRequest Wrapper Filter org.jasig.cas.client.util.HttpServletRequestWrapperFilter CAS Assertion Thread Local Filter org.jasig.cas.client.util.AssertionThreadLocalFilter CAS Authentication Filter /* CAS Validation Filter /* CAS HttpServletRequest Wrapper Filter /* CAS Assertion Thread Local Filter /*
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2014-01-10 10:31:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> @ymgydx 你好,想跟你請(qǐng)教個(gè)問(wèn)題: INFO No Proxy Ticket found for []. org.jasig.cas.client.proxy.ProxyGrantingTicketStorageImpl.retrieve 這個(gè)問(wèn)題解決了沒(méi),謝謝?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2014-09-02 10:35:00
入口在聯(lián)通手機(jī)營(yíng)業(yè)廳首頁(yè)中間小橫幅。 3.活動(dòng)期間,選擇對(duì)應(yīng)充值檔位的用戶(hù)可獲得相應(yīng)優(yōu)惠,受邀用戶(hù)在“①.②.③.④.⑤.⑥”檔位中僅能選擇一檔參與,且僅能參與一次,不可參與多個(gè)檔位、不可同檔位重復(fù)參與: ①充值 30 元另得 1 個(gè)月騰訊視頻會(huì)員; ②充值 30 元另得 30 元話(huà)費(fèi),分 3 個(gè)月到賬,每月返 10 元; ③充值 50 元另得 3 個(gè)月騰訊視頻會(huì)員; ④充值 50 元另得 50 元話(huà)費(fèi),分 5 個(gè)月到賬,每月返 10 元; ⑤充值 100 元另得 6 個(gè)月騰訊視頻會(huì)員; ⑥充值 100 元另得 100 元話(huà)費(fèi),分 10 個(gè)月到賬,每月返 10 元; 具體情況見(jiàn)活動(dòng)詳情
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:41:37
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 最近公司項(xiàng)目需要實(shí)現(xiàn)單點(diǎn)登錄,我選擇使用CAS來(lái)實(shí)現(xiàn),在進(jìn)行的過(guò)程中,遇到一個(gè)問(wèn)題。 在使用CAS單點(diǎn)登錄的時(shí)候,如果當(dāng)前沒(méi)有登錄的話(huà),會(huì)跳轉(zhuǎn)到登錄頁(yè)去登陸。 但現(xiàn)在比如說(shuō) ,我有一個(gè)項(xiàng)目1 ,用戶(hù)在沒(méi)有登錄的情況下可以進(jìn)入首頁(yè) ,但如果用戶(hù)已經(jīng)登陸過(guò)了 ,那么在首頁(yè)可以顯示用戶(hù)信息。也就是說(shuō) ,登錄或不登錄都可以進(jìn)入這個(gè)頁(yè)面。 但現(xiàn)在的情況是,如果沒(méi)有登錄,會(huì)跳轉(zhuǎn)到登錄頁(yè)讓用戶(hù)去登陸。 不知道怎么解決?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2016-12-12 17:33:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 使用JA-SIG的SSO搭建的單點(diǎn)登錄,內(nèi)外應(yīng)用,客戶(hù)沒(méi)有域名服務(wù)器。 java.lang.RuntimeException: javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: No subject alternative names present 一下是sso server 日志,票據(jù)可以創(chuàng)建,但是驗(yàn)證時(shí)出以上錯(cuò)誤。在本地host文件模擬域名時(shí)無(wú)此錯(cuò)誤。問(wèn)題是客戶(hù)沒(méi)有域名服務(wù)器,怎么解決該問(wèn)題? ACTION: TICKET_GRANTING_TICKET_CREATED APPLICATION: CAS WHEN: Thu May 30 14:40:38 CST 2013 CLIENT IP ADDRESS: 192.168.137.1 SERVER IP ADDRESS: 192.168.137.3
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2013-05-30 14:57:00
The new job listing posted this week and discovered by AppleInsider makes numerous references to a specific, singular feature said to be a part of the Mac OS X operating system. Of course, it declines to reveal what that feature could be, but the ad does use the word "revolutionary" on three separate occasions."Are you looking to help create something new? Something that has never been done before and will truly amaze everyone?" the job listing reads. "Are you excited by the prospect that what you helped create would be used every day by millions of Apple customers? Then come and work with us on the Mac OS X software engineering team to help build a new and revolutionary feature for Mac OS X." ... "We have something truly revolutionary and really exciting in progress, and it is going to require your most creative and focused efforts ever," the listing days. The company wants to hire someone who has a drive to tackle "really hard" challenges that "have never been done before." An ideal candidate for the job has a degree in computer science and five years of professional experience in developing C/C++/Objective-C libraries or frameworks for use on end user systems. Applicants with experiencing developing for Mac OS X and UNIX are desired. Evidence of work on Mac OS X 10.7 came late last year, just a few months after the most recent version, Mac OS X 10.6 Snow Leopard, shipped. AT the time, a new database entry for the open source "launchd" framework responsible for Mac OS X referenced "11A47." The numerical prefix of a Mac OS X build determines the version number, and 11A47 would imply an early version of Mac OS X 10.7. via http://www.appleinsider.com/articles/10/07/29/apple_seeks_engineer_for_revolutionary_new_mac_os_x_feature.html
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:41:28
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 我也在用cas今天遇到一個(gè)問(wèn)題,當(dāng)我去獲取登錄用戶(hù)的其他信息的時(shí)候,信息是獲取到了,但是沒(méi)有顯示并報(bào)錯(cuò)了,跟著錯(cuò)誤找到了這個(gè)類(lèi) PersonDirectoryPrincipalResolver,他下面的resolve方法最后有一個(gè) return new SimplePrincipal(principalId, convertedAttributes); 這個(gè)返回值他會(huì)傳到哪里呢?我這個(gè)小菜鳥(niǎo)找了好久都沒(méi)找到,想請(qǐng)樓主指點(diǎn)一二
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2015-12-08 18:01:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 2013-02-26 16:25:29,742 INFO [com.github.inspektr.audit.support.Slf4jLoggingAuditTrailManager] -
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2013-03-25 19:26:00
除了重新啟動(dòng),真的不知道如何去做了 。。。Xcode + PS + Mail + Safari + Last.fm + iTunes + Terminal + TextMate, 中規(guī)中矩的用,4GB 內(nèi)存,半天不到就滿(mǎn)了 。。。就算全部都退出,Inactive 內(nèi)存也還是占用了一大半,非重啟不可。 大家有沒(méi)有什么好的辦法搞定這個(gè)問(wèn)題?比如說(shuō)什么超級(jí)犀利的小軟件之類(lèi),就像 iPhone 一代時(shí)期的那個(gè) FreeMemory 一樣 。。。
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:41:05
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> @Alkaid 你好,想跟你請(qǐng)教個(gè)問(wèn)題: CAS和Moodle 如何 對(duì)接 我的環(huán)境,是在 筆記本的本地測(cè)環(huán)境,安裝好 CAS 服務(wù)器 和 moodle 但 在 moodle 設(shè)置 CAS 驗(yàn)證后,提示
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2016-09-26 09:38:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 因單點(diǎn)登錄完成登錄后,跳回客戶(hù)端的主頁(yè),但該用戶(hù)好像未能進(jìn)入shiro框架中的用戶(hù)驗(yàn)證與權(quán)限查詢(xún),shiro不能認(rèn)定他為用戶(hù),請(qǐng)問(wèn)我在控制層如何操作才能讓返回的用戶(hù)進(jìn)行權(quán)限查詢(xún),跪求大神解答~~~~
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2016-08-26 11:05:00
http://mizage.com/divvy/ http://www.irradiatedsoftware.com/sizeup/ 其實(shí)我只要windows里面窗口平鋪的功能就好了,OS X沒(méi)有內(nèi)置這種功能實(shí)在是很郁悶啊
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:40:50
目前個(gè)人感覺(jué)是 Yojimbo,但是價(jià)格有點(diǎn)高,不過(guò)能夠通過(guò) MobileMe 同步這點(diǎn)倒是非常好。其他的如 JustNotes 需要全局 VPN,雖然免費(fèi),但是對(duì)網(wǎng)絡(luò)的要求就太高了。
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:40:44
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 如果要爬取的網(wǎng)站上沒(méi)有設(shè)置robots.txt,那么是不是代表默認(rèn)都允許爬取呢?有沒(méi)有法律風(fēng)險(xiǎn)呢?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2020-07-10 08:40:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 試著寫(xiě)一個(gè)spider 爬一個(gè)論壇(dz7.2),目標(biāo)板塊是要求登錄了,目標(biāo)站是cookie來(lái)驗(yàn)證身份的。我模擬登錄了,登錄成功后,在訪(fǎng)問(wèn)目標(biāo)板塊的時(shí)候,一直提示要求登錄,有點(diǎn)不明白怎么回事了,不知道是不是cookie沒(méi)有處理好,過(guò)來(lái)請(qǐng)教一下。下面是運(yùn)行時(shí)log和spider 代碼. 2013-11-16 14:50:57+0000 [scrapy] INFO: Scrapy 0.18.4 started (bot: magnetbot) 2013-11-16 14:50:57+0000 [scrapy] DEBUG: Optional features available: ssl, http11, django 2013-11-16 14:50:57+0000 [scrapy] DEBUG: Overridden settings: {'COOKIES_DEBUG': True, 'NEWSPIDER_MODULE': 'magnetbot.spiders', 'ITEM_PIPELINES': ['magnetbot.pipelines.MagnetbotPipeline'], 'DUPEFILTER_CLASS': 'magnetbot.middleware.filter.DuplicateFilter', 'SPIDER_MODULES': ['magnetbot.spiders'], 'RETRY_HTTP_CODES': [500, 502, 503, 504, 400, 408, 403], 'BOT_NAME': 'magnetbot', 'DOWNLOAD_TIMEOUT': 30, 'DOWNLOAD_DELAY': 3} 2013-11-16 14:50:57+0000 [scrapy] DEBUG: Enabled extensions: LogStats, TelnetConsole, CloseSpider, WebService, CoreStats, SpiderState 2013-11-16 14:50:58+0000 [scrapy] DEBUG: Enabled downloader middlewares: HttpAuthMiddleware, DownloadTimeoutMiddleware, RandomUserAgentMiddleware, RetryMiddleware, DefaultHeadersMiddleware, MetaRefreshMiddleware, HttpCompressionMiddleware, RedirectMiddleware, CookiesMiddleware, ChunkedTransferMiddleware, DownloaderStats 2013-11-16 14:50:58+0000 [scrapy] DEBUG: Enabled spider middlewares: HttpErrorMiddleware, OffsiteMiddleware, IgnoreVisitedLinkMiddleware, RefererMiddleware, UrlLengthMiddleware, DepthMiddleware 2013-11-16 22:50:59+0800 [scrapy] DEBUG: Enabled item pipelines: MagnetbotPipeline 2013-11-16 22:50:59+0800 [sisbot] INFO: Spider opened 2013-11-16 22:50:59+0800 [sisbot] INFO: Crawled 0 pages (at 0 pages/min), scraped 0 items (at 0 items/min) 2013-11-16 22:50:59+0800 [scrapy] DEBUG: Telnet console listening on 0.0.0.0:6023 2013-11-16 22:50:59+0800 [scrapy] DEBUG: Web service listening on 0.0.0.0:6080 2013-11-16 22:50:59+0800 [scrapy] DEBUG: using user agent Mozilla/5.0 (Windows NT 5.1) Gecko/20100101 Firefox/14.0 Opera/12.0 2013-11-16 22:51:00+0800 [sisbot] DEBUG: Received cookies from: <200 http://www.xxx.com/forum/logging.php?action=login> Set-Cookie: cdb2_sid=XbbV5z; expires=Sat, 23-Nov-2013 14:51:00 GMT; path=/ 2013-11-16 22:51:00+0800 [sisbot] DEBUG: Crawled (200) (referer: None) 2013-11-16 22:51:00+0800 [sisbot] DEBUG: {"questionid": "0", "loginfield": "username", "referer": "index.php", "formhash": "55be5d02", "loginsubmit": "true", "c95b1308bda0a3589f68f75d23b15938": "xxxxxx", "62838ebfea47071969cead9d87a2f1f7": "username", "cookietime": "315360000"} 2013-11-16 22:51:00+0800 [scrapy] DEBUG: using user agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.0; Trident/5.0; chromeframe/11.0.696.57) 2013-11-16 22:51:00+0800 [sisbot] DEBUG: Sending cookies to: Cookie: cdb2_sid=XbbV5z 2013-11-16 22:51:03+0800 [sisbot] DEBUG: Received cookies from: <200 http://www.xxx.com/forum/logging.php?action=login&> Set-Cookie: cdb2_sid=SLZhIh; expires=Sat, 23-Nov-2013 14:51:03 GMT; path=/ Set-Cookie: cdb2_cookietime=315360000; expires=Sun, 16-Nov-2014 14:51:03 GMT; path=/ Set-Cookie: cdb2_auth=RIaGRiRAHl5qHkk9TkSVg%2FYaF43pSkY87as6B0L87WyrTi4FXQtxgCmChtXG%2BoYptQ; expires=Tue, 14-Nov-2023 14:51:03 GMT; path=/ Set-Cookie: cdb2_isShowPWNotice=0; expires=Tue, 14-Nov-2023 14:51:03 GMT; path=/ 2013-11-16 22:51:03+0800 [sisbot] DEBUG: Crawled (200) (referer: http://www.xxx.com/forum/logging.php?action=login) 2013-11-16 22:51:03+0800 [sisbot] DEBUG: login.... 2013-11-16 22:51:03+0800 [sisbot] DEBUG: login success 2013-11-16 22:51:03+0800 [scrapy] DEBUG: using user agent Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.93 Safari/537.36 2013-11-16 22:51:03+0800 [sisbot] DEBUG: Sending cookies to: Cookie: cdb2_isShowPWNotice=0; cdb2_cookietime=315360000; cdb2_auth=RIaGRiRAHl5qHkk9TkSVg%2FYaF43pSkY87as6B0L87WyrTi4FXQtxgCmChtXG%2BoYptQ; cdb2_sid=SLZhIh 2013-11-16 22:51:07+0800 [sisbot] DEBUG: Received cookies from: <200 http://www.xxx.com/forum/forum-270-1.html> Set-Cookie: cdb2_sid=wTx2ho; expires=Sat, 23-Nov-2013 14:51:07 GMT; path=/ 2013-11-16 22:51:07+0800 [sisbot] DEBUG: Crawled (200) (referer: http://www.xxx.com/forum/logging.php?action=login&) 2013-11-16 22:51:07+0800 [sisbot] DEBUG: login error !!! 2013-11-16 22:51:07+0800 [sisbot] INFO: Closing spider (finished) 2013-11-16 22:51:07+0800 [sisbot] INFO: Dumping Scrapy stats: {'downloader/request_bytes': 1481, 'downloader/request_count': 3, 'downloader/request_method_count/GET': 2, 'downloader/request_method_count/POST': 1, 'downloader/response_bytes': 18632, 'downloader/response_count': 3, 'downloader/response_status_count/200': 3, 'finish_reason': 'finished', 'finish_time': datetime.datetime(2013, 11, 16, 14, 51, 7, 302541), 'log_count/DEBUG': 22, 'log_count/INFO': 3, 'request_depth_max': 2, 'response_received_count': 3, 'scheduler/dequeued': 3, 'scheduler/dequeued/disk': 3, 'scheduler/enqueued': 3, 'scheduler/enqueued/disk': 3, 'start_time': datetime.datetime(2013, 11, 16, 14, 50, 59, 849339)} spider 代碼: class SisBot(BaseSpider): name = "sisbot" settings.overrides['COOKIES_DEBUG'] = True allowed_domains = ["www.xxx.com"] start_urls = ['http://www.xxx.com/forum/logging.php?action=login'] urls = ['http://www.xxx.com/forum/forum-270-%s.html'] link_reg = re.compile(r']*>[^<]*') title_reg = re.compile(r'.*

]*>\[(.*)\]([^<]+)

(.*)', re.DOTALL) ed2k_reg = re.compile(r'.*(ed2k://\|file\|.*/).*') def parse(self, response): hxs = HtmlXPathSelector(response) name = "".join(hxs.select('//*[@id="username"]/@name').extract()) password = "".join(hxs.select('//*[@id="password"]/@name').extract()) formhash = "".join(hxs.select('//*[@name="formhash"]/@value').extract()) formdata = {name: 'myusername', password: 'sercet', 'formhash': formhash, 'referer': 'index.php', 'cookietime': "315360000", 'loginfield': 'username', 'loginsubmit': 'true', 'questionid': "0"} self.log(json.dumps(formdata)) return [ FormRequest.from_response(response, formdata=formdata, callback=self.after_login)] def parse_link(self, response): self.log(response.body) if "myusername" not in response.body: self.log("login error !!!") for sub_url in self.link_reg.findall(response.body): yield Request("http://www.xxx.com/%s" % sub_url, callback=self.parse_item) def after_login(self, response): self.log("login....") if not "myusername" in response.body: self.log("login failed", level=log.ERROR) return self.log("login success") us = [u % page for u in self.urls for page in xrange(1, 2)] self.log(us) for url in us: yield Request(url=url, method='get', callback=self.parse_link)
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2013-11-16 22:55:06
Safari Reader可以提取出頁(yè)面中需要閱讀的部分,進(jìn)行更好的展示。 簡(jiǎn)單試了一下,目前有效的站點(diǎn)不多,wordpress的一個(gè)例子: http://3.ly/R4D7 點(diǎn)擊地址欄右端的“閱讀器” Extensions 基于HTML5,CSS3,JavaScript 另外,界面上比較明顯的改動(dòng),新的頁(yè)面讀取進(jìn)度條,使用地址欄處背景展示。 http://www.apple.com/safari/whats-new.html
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:40:31
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 現(xiàn)有12條數(shù)據(jù),如圖所示,想要實(shí)現(xiàn) 刪除數(shù)字3的數(shù)據(jù)后,數(shù)字為4的字段都變?yōu)?,該如何實(shí)現(xiàn)?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2016-02-15 20:33:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 如果有代碼 最好!萬(wàn)分感謝!
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2016-01-05 09:36:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 做分布式爬蟲(chóng)和搜索引擎對(duì)于服務(wù)器配置有什么要求? 實(shí)驗(yàn)室要做主題爬蟲(chóng),附帶簡(jiǎn)單的搜索查詢(xún)功能,現(xiàn)在要租用10~20臺(tái)服務(wù)器,不知道什么配置好。 我們之前使用了三臺(tái)服務(wù)器(租用的阿里云),用nutch1.7+hdfs爬取8000個(gè)URL(兩層深度)用了兩個(gè)多小時(shí),第三層達(dá)到了40萬(wàn)用了3天還沒(méi)完全爬完,感覺(jué)很慢。 服務(wù)器配置如下: - 服務(wù)器A:主節(jié)點(diǎn)CPU 4核,內(nèi)存32G,20Mbps(峰值)公網(wǎng)帶寬(按流量) - 服務(wù)器B,C:CPU 1核,2G內(nèi)存,1Mbps公網(wǎng)帶寬(固定帶寬) 其中服務(wù)器A既做主節(jié)點(diǎn)又做從節(jié)點(diǎn),服務(wù)器B,C只做從節(jié)點(diǎn)。 我有幾點(diǎn)困惑: 1.制約爬取速度的,是帶寬還是cpu的處理能力?我看任務(wù)日志,在nutch流程中fetch(連接并下載網(wǎng)頁(yè))這一步耗時(shí)最長(zhǎng),占據(jù)了絕大部分時(shí)間,是不是意味著帶寬是主要瓶頸? 2.關(guān)于一臺(tái)2核4G1M的配置和2臺(tái)1核2G1M的配置,哪個(gè)更好?為什么?( 阿里云的 阿里云推薦配置 https://www.aliyun.com/easybuy ) 3.如果租用10~20臺(tái)服務(wù)器,配置如何選擇?使用標(biāo)準(zhǔn)配置還是加帶寬,帶寬如何選擇? 4.關(guān)于服務(wù)器負(fù)載的相關(guān)科普鏈接、干貨(譬如量級(jí)、多少負(fù)載是個(gè)什么概念等、實(shí)測(cè)實(shí)例數(shù)據(jù)等等)? 希望有經(jīng)驗(yàn)的大神指點(diǎn)迷津。本人對(duì)實(shí)際負(fù)載沒(méi)有任何概念和經(jīng)驗(yàn),實(shí)驗(yàn)室需要,急著租服務(wù)器。
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2016-02-23 20:05:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> @楊尚川 你好,想跟你請(qǐng)教個(gè)問(wèn)題:楊老師 實(shí)在不好意思,想麻煩你一個(gè)問(wèn)題,困擾了我很久。 我并不是一個(gè)智慧伸手要資源的傻瓜,在學(xué)習(xí)了你相關(guān)的nutch視頻之后,試著自己去嘗試做一些東西。于是根據(jù)nutch官網(wǎng)上給出的信息,我選擇了最新版的nutch 2.3,因?yàn)閚utch2.3采用的是gora0.5,所以官網(wǎng)上建議搭配hbase0.94.14和hadoop2.4,而我去了gora官網(wǎng)看了一下,gora最新的版本是0.6,所以我編譯nutch2.3的時(shí)候?qū)ora hadoop 和hbase 都改成了gora官網(wǎng)上建議的版本。成功編譯,我首先部署了hadoop和hbase ,并且也都全部啟動(dòng)(完全分布式,共3臺(tái)機(jī)器)。 可是,當(dāng)我開(kāi)心的進(jìn)入到nutch2.3的runtime/deploy/下 執(zhí)行 ./bin/nutch inject urls 時(shí),給出了一個(gè)這樣的錯(cuò)誤: Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration at org.apache.gora.hbase.store.HBaseStore.initialize(HBaseStore.java:114) at org.apache.gora.store.DataStoreFactory.initializeDataStore(DataStoreFactory.java:101) at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:160) at org.apache.gora.store.DataStoreFactory.createDataStore(DataStoreFactory.java:134) at org.apache.nutch.storage.StorageUtils.createWebStore(StorageUtils.java:78) at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:218) at org.apache.nutch.crawl.InjectorJob.inject(InjectorJob.java:252) at org.apache.nutch.crawl.InjectorJob.run(InjectorJob.java:275) at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70) at org.apache.nutch.crawl.InjectorJob.main(InjectorJob.java:284) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.hadoop.util.RunJar.main(RunJar.java:212) Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguration at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 15 more Nutch官網(wǎng)tutorial2.X給出的的解釋是這樣的: N.B. It's possible to encounter the following exception: java.lang. NoClassDefFoundError : org/apache/hadoop/hbase/HBaseConfiguration; this is caused by the fact that sometimes the hbase TEST jar is deployed in the lib dir. To resolve this just copy the lib over from your installed HBase dir into the build lib dir. (This issue is currently in progress). 于是 我使用了這個(gè)命令cp /$HBASE_HOME/lib/*jar /$NUTCH_HOME/build/ 拷貝到了butch下,仍然不起作用,于是我又將/$HBASE_HOME/lib/*jar拷貝到了/$NUTCH_HOME/lib,第三次運(yùn)行./bin/nutch inject urls,還是拋出上述的錯(cuò)誤。無(wú)奈我求助google,google給出的結(jié)果也是很少,基本上解決不了我的問(wèn)題。所以我很困惑,在這個(gè)問(wèn)題上糾結(jié)了很久。鑒于,楊老師對(duì)nutch的研究頗為深入,所以向您求助。 希望您百忙中能抽空回答一下,不勝感激!
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2015-05-24 14:51:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 樓主有點(diǎn)小煩。最近學(xué)著使用nutch 在配置nutch時(shí),在hadoop的版本上出現(xiàn)了讓我很糾結(jié)的選擇! nutch官網(wǎng)上推薦的是這樣的搭配:hadoop2.4.0+hbase0.94.14 而hbase官網(wǎng)上對(duì)hadoo的支持說(shuō)明是這樣的 hadoop2.4.0 對(duì)與hbase 0.94 是NT not tested的。 我好亂不知道選擇哪個(gè)了
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2015-05-17 12:00:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 網(wǎng)絡(luò)輿情爬蟲(chóng)開(kāi)發(fā) 之英雄帖 開(kāi)發(fā)需求 用于網(wǎng)絡(luò)輿情信息采集與分析的軟件(接口級(jí)) 功能描述 1. 信息采集類(lèi)型 :新聞、政務(wù)網(wǎng)站、論壇、博客、微信、微博、視頻、境外中文媒體,約 3 萬(wàn)站點(diǎn) 2. 網(wǎng)頁(yè)解析字段項(xiàng) :標(biāo)題、時(shí)間、作者、正文、正文摘要、 URL 、評(píng)論數(shù)、轉(zhuǎn)載數(shù)等 3. 數(shù)據(jù)分析類(lèi)型 :輿情常規(guī)的語(yǔ)義分析、熱點(diǎn)分析 4. 全文檢索功能 技術(shù)要求 1) 部署 \OS :云服務(wù)器 \centos 2) 網(wǎng)絡(luò)爬蟲(chóng): Nutch1.6 \ Nutch1.7 3) 離線(xiàn)計(jì)算 \ 實(shí)時(shí)計(jì)算: hadoop2.x \ storm 4) 數(shù)據(jù)采集 \ 消息隊(duì)列: flume \ Kafka 5) DB : hbase \ mongodb 6) 檢索: solr 7) 其他:開(kāi)源、無(wú)限制 其他要求 聯(lián)系方式 1) 24 小時(shí)運(yùn)行 2) 開(kāi)發(fā)文檔完整 3) 除首次外,完成單次信息采集解析 < 4 小時(shí) 北京弘易軟件 張工 手機(jī): 13466796522 QQ:1075455138
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2016-11-09 11:11:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> @S2JH 你好,最近在nutch2.2.1開(kāi)發(fā)使用時(shí),發(fā)現(xiàn)了一個(gè)問(wèn)題,請(qǐng)教一下您: 問(wèn)題描述:出現(xiàn)重復(fù)抓取現(xiàn)象,即第二次抓取時(shí)會(huì)將第一次抓取的數(shù)據(jù)再抓取一遍,第三次抓取時(shí)會(huì)將第一次、第二次抓取的數(shù)據(jù)再抓取一遍,總之就是本次抓取會(huì)將新數(shù)據(jù)和前面已經(jīng)抓取過(guò)的數(shù)據(jù)再抓取一遍;( urls里面有一個(gè)鏈接,第一次抓取時(shí)抓取urls里面的鏈接,解析此鏈接產(chǎn)生50條數(shù)據(jù)并存入數(shù)據(jù)庫(kù),第二次抓取時(shí)應(yīng)該只抓取剛產(chǎn)生的50條數(shù)據(jù)才對(duì),但是卻抓取了數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)51條,即第一次抓取的數(shù)據(jù)又抓取了一遍;第二次抓取數(shù)據(jù)產(chǎn)生了100條數(shù)據(jù)并存入數(shù)據(jù)庫(kù),第三次抓取理論上應(yīng)該是抓取第二次抓取時(shí)產(chǎn)生的數(shù)據(jù),但是同樣是抓取了數(shù)據(jù)庫(kù)中所有的數(shù)據(jù),將第一次、第二次抓取的數(shù)據(jù)又抓取了一遍,就這樣一直重復(fù)抓取,影響了速度,而且頁(yè)面解析時(shí)會(huì)出現(xiàn)重復(fù)數(shù)據(jù),這個(gè)問(wèn)題怎么解決呢 )
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2016-07-25 18:24:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> http://www.haodf.com/doctor/DE4r0BCkuHzdeZILvCBx2XzuGO4ty.htm 這是一個(gè)JS生成的 頁(yè)面,源碼里看不到 簡(jiǎn)介 處的 東西,同時(shí) 后臺(tái) 也沒(méi)有相關(guān)的 異步請(qǐng)求的 api地址。 怎么搞呢? 用什么組件 可以 獲取到 執(zhí)行完的 頁(yè)面完整源碼?
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2016-06-22 16:32:00
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> Nutch 主要分為兩個(gè)部分:爬蟲(chóng) crawler 和查詢(xún) searcher 。 Crawler 主要用于從網(wǎng)絡(luò)上抓取網(wǎng)頁(yè)并為這些網(wǎng)頁(yè)建立索引。 Searcher 主要利用這些索引檢索用戶(hù)的查找關(guān)鍵詞來(lái)產(chǎn)生查找結(jié)果。兩者之間的接口是索引,所以除去索引部分,兩者之間的耦合度很低。 Crawler 和 Searcher 兩部分盡量分開(kāi)的目的主要是為了使兩部分可以分布式配置在硬件平臺(tái)上,例如將 Crawler 和 Searcher 分別放在兩個(gè)主機(jī)上,這樣可以提升性能。 爬蟲(chóng), Crawler : Crawler 的重點(diǎn)在兩個(gè)方面, Crawler 的工作流程和涉及的數(shù)據(jù)文件的格式和含義。數(shù)據(jù)文件主要包括三類(lèi),分別是 web database ,一系列的 segment 加上 index ,三者的物理文件分別存儲(chǔ)在爬行結(jié)果目錄下的 db 目錄下 webdb 子文件夾內(nèi), segments 文件夾和 index 文件夾。那么三者分別存儲(chǔ)的信息是什么呢? Web database ,也叫 WebDB ,其中存儲(chǔ)的是爬蟲(chóng)所抓取網(wǎng)頁(yè)之間的鏈接結(jié)構(gòu)信息,它只在爬蟲(chóng) Crawler 工作中使用而和 Searcher 的工作沒(méi)有任何關(guān)系。 WebDB 內(nèi)存儲(chǔ)了兩種實(shí)體的信息: page 和 link 。 Page 實(shí)體通過(guò)描述網(wǎng)絡(luò)上一個(gè)網(wǎng)頁(yè)的特征信息來(lái)表征一個(gè)實(shí)際的網(wǎng)頁(yè),因?yàn)榫W(wǎng)頁(yè)有很多個(gè)需要描述, WebDB 中通過(guò)網(wǎng)頁(yè)的 URL 和網(wǎng)頁(yè)內(nèi)容的 MD5 兩種索引方法對(duì)這些網(wǎng)頁(yè)實(shí)體進(jìn)行了索引。 Page 實(shí)體描述的網(wǎng)頁(yè)特征主要包括網(wǎng)頁(yè)內(nèi)的 link 數(shù)目,抓取此網(wǎng)頁(yè)的時(shí)間等相關(guān)抓取信息,對(duì)此網(wǎng)頁(yè)的重要度評(píng)分等。同樣的, Link 實(shí)體描述的是兩個(gè) page 實(shí)體之間的鏈接關(guān)系。 WebDB 構(gòu)成了一個(gè)所抓取網(wǎng)頁(yè)的鏈接結(jié)構(gòu)圖,這個(gè)圖中 Page 實(shí)體是圖的結(jié)點(diǎn),而 Link 實(shí)體則代表圖的邊。 一次爬行會(huì)產(chǎn)生很多個(gè) segment ,每個(gè) segment 內(nèi)存儲(chǔ)的是爬蟲(chóng) Crawler 在單獨(dú)一次抓取循環(huán)中抓到的網(wǎng)頁(yè)以及這些網(wǎng)頁(yè)的索引。 Crawler 爬行時(shí)會(huì)根據(jù) WebDB 中的 link 關(guān)系按照一定的爬行策略生成每次抓取循環(huán)所需的 fetchlist ,然后 Fetcher 通過(guò) fetchlist 中的 URLs 抓取這些網(wǎng)頁(yè)并索引,然后將其存入 segment 。 Segment 是有時(shí)限的,當(dāng)這些網(wǎng)頁(yè)被 Crawler 重新抓取后,先前抓取產(chǎn)生的 segment 就作廢了。在存儲(chǔ)中。 Segment 文件夾是以產(chǎn)生時(shí)間命名的,方便我們刪除作廢的 segments 以節(jié)省存儲(chǔ)空間。 Index 是 Crawler 抓取的所有網(wǎng)頁(yè)的索引,它是通過(guò)對(duì)所有單個(gè) segment 中的索引進(jìn)行合并處理所得的。 Nutch 利用 Lucene 技術(shù)進(jìn)行索引,所以 Lucene 中對(duì)索引進(jìn)行操作的接口對(duì) Nutch 中的 index 同樣有效。但是需要注意的是, Lucene 中的 segment 和 Nutch 中的不同, Lucene 中的 segment 是索引 index 的一部分,但是 Nutch 中的 segment 只是 WebDB 中各個(gè)部分網(wǎng)頁(yè)的內(nèi)容和索引,最后通過(guò)其生成的 index 跟這些 segment 已經(jīng)毫無(wú)關(guān)系了。 Crawler 工作流程: 在分析了 Crawler 工作中設(shè)計(jì)的文件之后,接下來(lái)我們研究一下 Crawler 的抓取流程以及這些文件在抓取中扮演的角色。 Crawler 的工作原理主要是:首先 Crawler 根據(jù) WebDB 生成一個(gè)待抓取網(wǎng)頁(yè)的 URL 集合叫做 Fetchlist ,接著下載線(xiàn)程 Fetcher 開(kāi)始根據(jù) Fetchlist 將網(wǎng)頁(yè)抓取回來(lái),如果下載線(xiàn)程有很多個(gè),那么就生成很多個(gè) Fetchlist ,也就是一個(gè) Fetcher 對(duì)應(yīng)一個(gè) Fetchlist 。然后 Crawler 根據(jù)抓取回來(lái)的網(wǎng)頁(yè) WebDB 進(jìn)行更新,根據(jù)更新后的 WebDB 生成新的 Fetchlist ,里面是未抓取的或者新發(fā)現(xiàn)的 URLs ,然后下一輪抓取循環(huán)重新開(kāi)始。這個(gè)循環(huán)過(guò)程可以叫做“產(chǎn)生 / 抓取 / 更新”循環(huán)。 指向同一個(gè)主機(jī)上 Web 資源的 URLs 通常被分配到同一個(gè) Fetchlist 中,這樣的話(huà)防止過(guò)多的 Fetchers 對(duì)一個(gè)主機(jī)同時(shí)進(jìn)行抓取造成主機(jī)負(fù)擔(dān)過(guò)重。另外 Nutch 遵守 Robots Exclusion Protocol ,網(wǎng)站可以通過(guò)自定義 Robots.txt 控制 Crawler 的抓取。 在 Nutch 中, Crawler 操作的實(shí)現(xiàn)是通過(guò)一系列子操作的實(shí)現(xiàn)來(lái)完成的。這些子操作 Nutch 都提供了子命令行可以單獨(dú)進(jìn)行調(diào)用。下面就是這些子操作的功能描述以及命令行,命令行在括號(hào)中。 1. 創(chuàng)建一個(gè)新的 WebDb ( admin db -create ). 2. 將抓取起始 URLs 寫(xiě)入 WebDB 中 ( inject ). 3. 根據(jù) WebDB 生成 fetchlist 并寫(xiě)入相應(yīng)的 segment( generate ). 4. 根據(jù) fetchlist 中的 URL 抓取網(wǎng)頁(yè) ( fetch ). 5. 根據(jù)抓取網(wǎng)頁(yè)更新 WebDb ( updatedb ). 6. 循環(huán)進(jìn)行 3 - 5 步直至預(yù)先設(shè)定的抓取深度。 7. 根據(jù) WebDB 得到的網(wǎng)頁(yè)評(píng)分和 links 更新 segments ( updatesegs ). 8. 對(duì)所抓取的網(wǎng)頁(yè)進(jìn)行索引 ( index ). 9. 在索引中丟棄有重復(fù)內(nèi)容的網(wǎng)頁(yè)和重復(fù)的 URLs ( dedup ). 10. 將 segments 中的索引進(jìn)行合并生成用于檢索的最終 index( merge ). Crawler 詳細(xì)工作流程是:在創(chuàng)建一個(gè) WebDB 之后 ( 步驟 1), “產(chǎn)生 / 抓取 / 更新”循環(huán) ( 步驟 3 - 6) 根據(jù)一些種子 URLs 開(kāi)始啟動(dòng)。當(dāng)這個(gè)循環(huán)徹底結(jié)束, Crawler 根據(jù)抓取中生成的 segments 創(chuàng)建索引(步驟 7 - 10 )。在進(jìn)行重復(fù) URLs 清除(步驟 9 )之前,每個(gè) segment 的索引都是獨(dú)立的(步驟 8 )。最終,各個(gè)獨(dú)立的 segment 索引被合并為一個(gè)最終的索引 index (步驟 10 )。 其中有一個(gè)細(xì)節(jié)問(wèn)題, Dedup 操作主要用于清除 segment 索引中的重復(fù) URLs ,但是我們知道,在 WebDB 中是不允許重復(fù)的 URL 存在的,那么為什么這里還要進(jìn)行清除呢?原因在于抓取的更新。比方說(shuō)一個(gè)月之前你抓取過(guò)這些網(wǎng)頁(yè),一個(gè)月后為了更新進(jìn)行了重新抓取,那么舊的 segment 在沒(méi)有刪除之前仍然起作用,這個(gè)時(shí)候就需要在新舊 segment 之間進(jìn)行除重。 另外這些子操作在第一次進(jìn)行 Crawler 運(yùn)行時(shí)可能并不用到,它們主要用于接下來(lái)的索引更新,增量搜索等操作的實(shí)現(xiàn)。這些在以后的文章中我再詳細(xì)講。 個(gè)性化設(shè)置: Nutch 中的所有配置文件都放置在總目錄下的 conf 子文件夾中,最基本的配置文件是 conf/nutch-default.xml 。這個(gè)文件中定義了 Nutch 的所有必要設(shè)置以及一些默認(rèn)值,它是不可以被修改的。如果你想進(jìn)行個(gè)性化設(shè)置,你需要在 conf/nutch-site.xml 進(jìn)行設(shè)置,它會(huì)對(duì)默認(rèn)設(shè)置進(jìn)行屏蔽。 Nutch 考慮了其可擴(kuò)展性,你可以自定義插件 plugins 來(lái)定制自己的服務(wù),一些 plugins 存放于 plugins 子文件夾。 Nutch 的網(wǎng)頁(yè)解析與索引功能是通過(guò)插件形式進(jìn)行實(shí)現(xiàn)的,例如,對(duì) HTML 文件的解析與索引是通過(guò) HTML document parsing plugin , parse-html 實(shí)現(xiàn)的。所以你完全可以自定義各種解析插件然后對(duì)配置文件進(jìn)行修改,然后你就可以抓取并索引各種類(lèi)型的文件了。
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2009-03-29 20:49:00
最近有稍微刷了一下,目前的成就大概是 17 個(gè) project,不過(guò)大部分是水題,kotlin 、web 和 java 分別做了一道極難(紫色)難度的 project,刷完 kotlin 和 web 還有 devtool 部分的 topic,java 刷了大半。有點(diǎn)想說(shuō)點(diǎn)什么,然后也好奇有沒(méi)有同類(lèi)型的網(wǎng)站呢(主要是做 project 挺有意思的) 簡(jiǎn)單評(píng)價(jià)一下吧,純個(gè)人主觀判斷( 首先當(dāng)然是優(yōu)點(diǎn)(不然也不會(huì)沉迷?xún)蓚€(gè)月了) 優(yōu)點(diǎn): 網(wǎng)站的界面做得很流暢,內(nèi)置的編輯器也很方便,特別是 web 部分的編輯器還帶自動(dòng)補(bǔ)全的(懷疑后臺(tái)其實(shí)是 vscode ) 題目部分種類(lèi)和難度都很豐富,刷一遍下來(lái)還是能復(fù)習(xí)到不少東西的 課程內(nèi)容不局限于語(yǔ)言本身,還包括了一些設(shè)計(jì)模式、算法、框架、庫(kù)、正則、CRUD 、fp 、并發(fā)之類(lèi)的內(nèi)容,大概算是大雜燴吧 project 大部分都比較有趣,有一定的實(shí)用性,比如說(shuō)用 GUI 寫(xiě)生命游戲、文本編輯器或掃雷或者 java 寫(xiě)簡(jiǎn)單的 blockchain,做完也會(huì)有點(diǎn)成就感 project 都是分成若干個(gè)步驟(一般 4-8 個(gè) stage ),每一步都在前一步的基礎(chǔ)上進(jìn)行改進(jìn),直到最后完成作業(yè)。相對(duì)來(lái)說(shuō)對(duì)萌新比較友好(但其實(shí)也不一定,等一下就說(shuō)到了) 在 ide 里可以通過(guò)直接提交代碼跳過(guò)刷課程的部分強(qiáng)行通關(guān) project 如果 project 或者題目實(shí)現(xiàn)出錯(cuò)了程序會(huì)提醒可能出錯(cuò)的原因,雖然不一定準(zhǔn)確但是還是比較 user-friendly (相比許多 oj 網(wǎng)站),不過(guò)有時(shí)候就不給提醒了 課程內(nèi)容組織相對(duì)比較體系化,內(nèi)置的知識(shí)圖譜應(yīng)該就可以看出來(lái)了吧 官方的 support 反應(yīng)還是很快,網(wǎng)站用戶(hù)的互動(dòng)也比較積極,不像某些知名 mooc 上的某些 specialization 的論壇冷清到一年的貼子數(shù)以個(gè)位數(shù)算,估計(jì) support 也是不存在的那種 但是用久了發(fā)現(xiàn)這家的缺點(diǎn)也是挺明顯的(許多 topic 、question 和 stage implementation 里都不乏有抱怨的聲音) 缺點(diǎn): 時(shí)不時(shí)會(huì)抽風(fēng) submit 的等待時(shí)間超久 雖然 topic 的廣度上去了,但是大部分內(nèi)容真的就是淺嘗輒止甚至 web 部分提到框架的 topic 只有一篇 intro 加上一篇介紹 react 的,等于還是什么也沒(méi)講,真要做 project 的話(huà)大部分的內(nèi)容還是得自行 google web 和 kotlin 部分的內(nèi)容明顯少了許多,尤其是 web,雖然說(shuō)還在 beta,但是過(guò)了一個(gè)半月似乎也沒(méi)新增新的內(nèi)容 題目的設(shè)計(jì)良莠不齊,有的題目的考點(diǎn)特別刁鉆,有的題目特別水(尤其是在一些冷門(mén) topic 下),有的題目直接跑題 project 的設(shè)計(jì)也有好有差,好的 project 可以和每一 stage cover 的 topic 銜接得很好,但也有 project 的 implementation 跟 topics 幾乎不相干。最差的 project 大概是 stage1 、stage2 、stage3 implement 了一個(gè)東西,然后到了 last stage 的時(shí)候題目的要求等同于強(qiáng)迫你把前面的代碼全部放棄從頭再來(lái),和前面提到的 project implementation by steps 的概念背道而馳 project 的 test 的質(zhì)量有時(shí)候也有問(wèn)題,有時(shí)候要 pass 一個(gè) stage 需要非常 tricky 的 solution,而有時(shí)候可能上一個(gè) stage 的代碼什么都不用改就直接 pass 了,還有一個(gè)的 test 甚至有人抱怨要跑上一個(gè)多小時(shí) 大部分 project 還是基于 cli,要求實(shí)現(xiàn) GUI 、并發(fā)、算法之類(lèi)的 project 基本上都在 hard 和 challenging 里面了,而這類(lèi) project 很多都是語(yǔ)焉不詳或者涉及到大量沒(méi)有被 cover 的 topic 的(這就又回到前面提到的內(nèi)容不足的問(wèn)題了),對(duì)用戶(hù)的搜索能力要求很高 官方的態(tài)度雖然很主動(dòng)但是似乎還是有很多 content 盡管很多人抱怨但并沒(méi)有被 fix 掉 總的來(lái)說(shuō)算是一個(gè)優(yōu)缺點(diǎn)都很明顯的網(wǎng)站吧。特別喜歡的是這種給一個(gè)有趣的 project 要求實(shí)現(xiàn),然后拆分成若干個(gè)步驟,一步步完善出一個(gè)成品的理念。然后網(wǎng)站本身提供的課程材料和問(wèn)題也挺適合用來(lái)溫習(xí)理解不夠深刻的概念的(雖然有內(nèi)容深度不足的問(wèn)題) 以 blockchain 為例,如果沒(méi)有分成每個(gè) stage 一步步加功能的話(huà),大概我是會(huì)一臉懵逼不知道該從哪開(kāi)始,最后就算能寫(xiě)出來(lái)的 code 也會(huì)亂七八糟。分開(kāi)來(lái)實(shí)現(xiàn)的話(huà),每一步都清楚地知道自己該實(shí)現(xiàn)什么,要 google 要翻資料文檔大致有一個(gè)思路也變得輕松許多 (口胡結(jié)束) 不知道有沒(méi)有類(lèi)似的網(wǎng)站呢,比如說(shuō)同樣是給定一個(gè) project,給出每一步要求實(shí)現(xiàn)到某個(gè)程度,然后可以檢測(cè)答案的正確性,或者不檢測(cè)答案而是給出一個(gè)參考的源代碼。不過(guò)其實(shí)給出分步驟的實(shí)現(xiàn)目標(biāo)也許也已經(jīng)不錯(cuò)了?可能更希望的是能做一些不同類(lèi)型的不同技術(shù)棧的 implementation 吧,比如說(shuō)基于某個(gè)框架的簡(jiǎn)單的 demo,或者是用 swing/tornado 寫(xiě)個(gè)小游戲,寫(xiě)一個(gè)簡(jiǎn)易的 android app 之類(lèi)的 知道的可能算類(lèi)似的大概有 kotlin 官網(wǎng)的 hands-on labs,也是分成許多小步,但是直接給出了源代碼可以照著抄。Google 的 android 文檔里似乎也有類(lèi)似的 lab 。不過(guò)這些內(nèi)容都是語(yǔ)言特定的感覺(jué),有沒(méi)有更 general 的呢?
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:39:12
下班的路上,在一條幽黑深長(zhǎng)的小道上,寥寥幾個(gè)行人。突然,一騎電動(dòng)車(chē)二人組把我攔住,前一句后一句讓我?guī)兔ν镀?,幾秒鐘就可以了。我看大家都挺不容易的,一心軟,干脆做個(gè)好人吧,于是停下了步伐。 按照指示掃碼投票后有個(gè)抽獎(jiǎng),一抽,中了個(gè)平板電腦。那兩個(gè)家伙都一臉詫異,不停地夸獎(jiǎng)我,說(shuō)了運(yùn)氣真好、沒(méi)搞錯(cuò)吧、再刷新一下之類(lèi)的話(huà),一個(gè)捧一個(gè)逗,還讓我拿到獎(jiǎng)品后請(qǐng)他們喝水,這個(gè)興奮勁仿佛中獎(jiǎng)的是他們而不是我。莫非真的是天上掉餡餅了?那我來(lái)看看這個(gè)餅到底好不好吃。 于是他們把我領(lǐng)到附近中國(guó)移動(dòng)的門(mén)店,有專(zhuān)門(mén)的業(yè)務(wù)員來(lái)接待我,掃碼核對(duì)后,還要看我支付寶信用分,鄭重其事地說(shuō)了一堆,什么信用越好機(jī)會(huì)越多,而且要實(shí)名制,一人只能領(lǐng)取一次。然后拿出一臺(tái)華為平板、一臺(tái)榮耀平板讓我選,把我給興奮地(假裝的)。選完后,他立即拿出一張合同,正片要開(kāi)始了。 大概意思是我要領(lǐng)走獎(jiǎng)品,就必須參加一個(gè)活動(dòng),這個(gè)活動(dòng)要求八年內(nèi)消費(fèi)完近 4000 元,要么辦張新卡充當(dāng)話(huà)費(fèi),要么下載某 APP,用這個(gè) APP 兌獎(jiǎng)成金幣消費(fèi)或者直接移動(dòng)線(xiàn)下消費(fèi)(例如買(mǎi) 2000 塊手機(jī)能抵扣兩三百元),balabali 說(shuō)了一大堆,合同背面寫(xiě)了老長(zhǎng)的內(nèi)容。我時(shí)不時(shí)附和一下,然后慢吞吞地喝了口冰水。 不知不覺(jué)半小時(shí)過(guò)去了,我看了看手表,時(shí)間差不多了。跟他說(shuō):不參加活動(dòng),不要獎(jiǎng)品了。然后起身,帥氣地戴上口罩,抑長(zhǎng)而去。 (正道地光。。。) 過(guò)程中沒(méi)有泄漏任何個(gè)人信息,除了投票的時(shí)候應(yīng)該記錄了頭像和昵稱(chēng)。 果然回去在網(wǎng)上一搜,上當(dāng)?shù)娜诉€真不少。移動(dòng)啊,你要不要臉!
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:39:05
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 課程背景: Nutch 誕生于 2002 年 8 月,是 Apache 旗下的一個(gè)用 Java 實(shí)現(xiàn)的開(kāi)源搜索引擎項(xiàng)目,自 Nutch1.2 版本之后, Nutch 已經(jīng)從搜索引擎演化為網(wǎng)絡(luò)爬蟲(chóng),接著 Nutch 進(jìn)一步演化為兩大分支版本: 1.X 和 2.X ,最大的區(qū)別在于 2.X 對(duì)底層的數(shù)據(jù)存儲(chǔ)進(jìn)行了抽象以支持各種底層存儲(chǔ)技術(shù)。在 Nutch 的進(jìn)化過(guò)程中,產(chǎn)生了 Hadoop 、 Tika 和 Gora 三個(gè) Java 開(kāi)源項(xiàng)目。如今這三個(gè)項(xiàng)目都發(fā)展迅速,極其火爆,尤其是 Hadoop ,其已成為大規(guī)模數(shù)據(jù)處理的事實(shí)上的標(biāo)準(zhǔn)。 Tika 使用多種現(xiàn)有的開(kāi)源內(nèi)容解析項(xiàng)目來(lái)實(shí)現(xiàn)從多種格式的文件中提取元數(shù)據(jù)和結(jié)構(gòu)化文本, Gora 支持把大數(shù)據(jù)持久化到多種存儲(chǔ)實(shí)現(xiàn)。 課程大綱: 1 、 Nutch 是什么? Nutch 是 Apache 旗下的 Java 開(kāi)源項(xiàng)目,最初是一個(gè)搜索引擎,現(xiàn)在是一個(gè)網(wǎng)絡(luò)爬蟲(chóng)。 2 、 Nutch 的設(shè)計(jì)初衷 ? 商業(yè)搜索引擎不開(kāi)源,搜索結(jié)果不純粹是根據(jù)網(wǎng)頁(yè)本身的價(jià)值進(jìn)行排序,而是有眾多商業(yè)利益考慮。 Nutch 提供了開(kāi)源的解決方案,幫助人們很容易地建立一個(gè)搜索引擎,為用戶(hù)提供優(yōu)質(zhì)的搜索結(jié)果,并能從一臺(tái)機(jī)器擴(kuò)展到成百上千臺(tái)。 3 、為什么要學(xué)習(xí) Nutch ? 搜索技術(shù)是信息時(shí)代的必備技術(shù)之一,沒(méi)有搜索功能的軟件是無(wú)法想象的,而搜索引擎是搜索技術(shù)的集大成者。通過(guò) Nutch 的學(xué)習(xí),可以對(duì)百度、谷歌這樣的搜索巨頭的內(nèi)部機(jī)制有所了解,并能根據(jù)自己的需要打造適合自己的搜索引擎,當(dāng)然,也可以把搜索技術(shù)應(yīng)用到幾乎所有的軟件開(kāi)發(fā)中 4 、 Nutch 的設(shè)計(jì)目標(biāo) ? 每個(gè)月抓取幾十億網(wǎng)頁(yè) 為這些網(wǎng)頁(yè)維護(hù)一個(gè)索引 對(duì)索引文件執(zhí)行每秒上千次的搜索 提供高質(zhì)量的搜索結(jié)果 以最小的成本運(yùn)作 5 、 Nutch 的發(fā)展歷程? 11 年發(fā)展歷程, 3 大分支版本 強(qiáng)調(diào)重用,誕生了 Java 開(kāi)源項(xiàng)目 Hadoop 、 Tika 、 Gora 不重新發(fā)明輪子,使用了大量第三方開(kāi)源項(xiàng)目 6 、 Nutch 的整體架構(gòu)? 插件機(jī)制、數(shù)據(jù)抓取、數(shù)據(jù)解析、鏈接分析、建立索引、分布式搜索等。 對(duì)于一個(gè)搜索引擎來(lái)說(shuō),最終可能由成百上千臺(tái)服務(wù)器組成,然而,初創(chuàng)公司最初可能只有幾臺(tái)機(jī)器作為嘗試,隨著公司的發(fā)展逐步增加機(jī)器,因此,線(xiàn)性可擴(kuò)展的分布式存儲(chǔ)與分布式計(jì)算是至關(guān)重要的。 Nutch 參考了 Google 的兩篇論文: MapReduce 計(jì)算模型以及 GFS 存儲(chǔ)模型,并做了實(shí)現(xiàn),后來(lái)把這兩大部分剝離出來(lái)形成獨(dú)立的開(kāi)源項(xiàng)目 Hadoop 。由此可知, Hadoop 誕生于 Nutch ,核心由分布式計(jì)算和分布式存儲(chǔ)組成,是 MapReduce 和 GFS 的 JAVA 開(kāi)源實(shí)現(xiàn)。 Nutch 使用 HDFS 作為存儲(chǔ)實(shí)現(xiàn)一直持續(xù)了很多年,然而使用 HDFS 有許多限制,后來(lái)考慮對(duì)存儲(chǔ)層進(jìn)行抽象,剝離并形成了新的開(kāi)源項(xiàng)目 Gora ,以支持多種存儲(chǔ)技術(shù),包括 RDBMS 和 NoSQL 。 對(duì)于搜索引擎來(lái)說(shuō),需要抓取各種各樣的文件,解析這些不同格式的文件是一個(gè)難題,為了簡(jiǎn)化設(shè)計(jì),也為了重用,于是誕生了 Tika ,一個(gè)專(zhuān)為內(nèi)容分析而誕生的工具箱。 7 、 Nutch 3 大分支版本? Nutch1.2 是一個(gè)完整的搜索引擎 Nutch1.7 是一個(gè)基于 HDFS 的網(wǎng)絡(luò)爬蟲(chóng) Nutch2.2.1 是一個(gè)基于 Gora 的網(wǎng)絡(luò)爬蟲(chóng) 1.X 系列可用于生產(chǎn)環(huán)境、 2.X 系列還不成熟 8 、 Nutch 的應(yīng)用領(lǐng)域? 站內(nèi)搜索引擎、全網(wǎng)搜索引擎、垂直搜索引擎、數(shù)據(jù)采集 9 、 nutch 的使用? 一些具體的實(shí)踐方法及演示 講師介紹: 楊尚川 ,系統(tǒng)架構(gòu)設(shè)計(jì)師,系統(tǒng)分析師, 2013 年度優(yōu)秀開(kāi)源項(xiàng)目 APDPlat 發(fā)起人,資深 Nutch 搜索引擎專(zhuān)家。多年專(zhuān)業(yè)的軟件研發(fā)經(jīng)驗(yàn),從事過(guò)管理信息系統(tǒng) (MIS) 開(kāi)發(fā)、移動(dòng)智能終端 (Win CE 、 Android 、 Java ME) 開(kāi)發(fā)、搜索引擎 (nutch 、 lucene 、 solr 、 elasticsearch) 開(kāi)發(fā)、大數(shù)據(jù)分析處理 (Hadoop 、 Hbase 、 Pig 、 Hive) 等工作。目前為獨(dú)立咨詢(xún)顧問(wèn),專(zhuān)注于大數(shù)據(jù)、搜索引擎等相關(guān)技術(shù),為客戶(hù)提供 Nutch 、 Lucene 、 Hadoop 、 Solr 、 ElasticSearch 、 HBase 、 Pig 、 Hive 、 Gora 等框架的解決方案、技術(shù)支持、技術(shù)咨詢(xún)以及培訓(xùn)等服務(wù)。 現(xiàn)場(chǎng)或線(xiàn)上參課 報(bào)名: http://www.osforce.cn/opencourse/31.html
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2013-09-12 17:30:00
看到一篇文章: 注意!花唄開(kāi)始接入征信,你的擔(dān)心這里全解答: http://www.leikeji.com/article/32321 這篇文章對(duì)目前現(xiàn)狀總結(jié)的比較全了??偨Y(jié)下這篇文章的結(jié)論:現(xiàn)在的情況就是就是白條,花唄的情況是算小額消費(fèi)貸還是信用卡消費(fèi)還是不明確,各有各的說(shuō)法。但總體來(lái)說(shuō),花唄,白條這些在征信上是比信用卡低一個(gè)檔次的。從芝麻信用沒(méi)拿到征信牌照到現(xiàn)在花唄開(kāi)始作為小額消費(fèi)貸接入征信,芝麻信用和花唄現(xiàn)在已經(jīng)對(duì)個(gè)人的征信分提升沒(méi)有任何作用。感覺(jué)現(xiàn)在的白條和花唄就是阿里和京東的信用卡服務(wù),但你貸款是找銀行貸的,銀行不承認(rèn)你這兩家的信用分你也沒(méi)辦法,未來(lái)有銀行貸款的需求的,還是乖乖用回信用卡吧。
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:38:55
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 在設(shè)計(jì)蜘蛛的時(shí)候,要注意些什么?比如索引的頻率,JavaScript的識(shí)別,最大化模擬瀏覽器或者直接包裝一個(gè)Webkit 在識(shí)別網(wǎng)頁(yè)元素的時(shí)候,要注意些什么?比如價(jià)格的識(shí)別,商品描述的識(shí)別,賣(mài)家等級(jí)的識(shí)別 索引的結(jié)果放入文件還是NoSQL數(shù)據(jù)系統(tǒng)?Cassandra?Hbase?MangoDB?MySQL? 先對(duì)索引排序之后放入數(shù)據(jù)系統(tǒng)還是從數(shù)據(jù)系統(tǒng)中取得結(jié)果之后在搜索服務(wù)器上面進(jìn)行排序,然后返回給瀏覽器? 新手,不懂太多...請(qǐng)高手,教育...指點(diǎn)... 謝先!!!
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2011-03-11 23:54:00
槽點(diǎn)一:買(mǎi)的時(shí)候以為是國(guó)外軟件,尤其是用戶(hù)手冊(cè)里的老外頭像惟妙惟肖,但是在具體的示例圖片上赫然看到了 wanglei 這種名字,我難以理解老外會(huì)用 wanglei 這種名字來(lái)做示例,如果我沒(méi)猜錯(cuò)又是出口轉(zhuǎn)內(nèi)銷(xiāo)了吧。 槽點(diǎn)二:簡(jiǎn)介里說(shuō)支持 icloud 同步,但是家庭記賬起碼要分兩部手機(jī)吧,難不成得跟我老婆用同一個(gè) icloud 賬戶(hù)?哪怕能支持個(gè) Google drive 也可以理直氣壯的說(shuō)支持同步,所謂的支持 icloud 同步相當(dāng)于僅支持一個(gè)人用,我覺(jué)得這個(gè)不能叫同步,最多只能叫單身狗同步。 功能的好壞每個(gè)人可以有自己的見(jiàn)解,但以上兩點(diǎn),我覺(jué)得只能用無(wú)語(yǔ)來(lái)形容,到處都是 Money Pro 的推薦文章,買(mǎi)完實(shí)際用起來(lái)遠(yuǎn)不是這么回事,還不如一些免費(fèi)記賬軟件做的用心。
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:38:44
HDC調(diào)試需求開(kāi)發(fā)(15萬(wàn)預(yù)算),能者速來(lái)!>>> 爬取網(wǎng)頁(yè)的指定信息,不需要保存完整頁(yè)面。比方說(shuō)阿里巴巴的需求信息,爬取后轉(zhuǎn)換為本地?cái)?shù)據(jù)結(jié)構(gòu)數(shù)據(jù)庫(kù)存儲(chǔ)。當(dāng)然,如果它的需求信息更新了,我還得跟新我的本地?cái)?shù)據(jù),所以還的判斷網(wǎng)頁(yè)是否更新。索引及查詢(xún)用Lucene就行了,現(xiàn)在是抓取部分,不知道哪個(gè)軟件定制化程度高一些,而且要容易使用,因?yàn)槲沂遣锁B(niǎo)...
來(lái)源:開(kāi)源中國(guó)
發(fā)布時(shí)間:2011-05-12 17:03:00
很多朋友們對(duì)于登錄必然遇到的驗(yàn)證碼這個(gè)事情很不理解,增加用戶(hù)操作的冗余性,直接登錄很方便,為什么 web 端登錄要添加個(gè)驗(yàn)證碼?直到上周,一家做業(yè)務(wù)安全的公司給出我們現(xiàn)在 Web 網(wǎng)站的安全報(bào)告,我才意識(shí)到:驗(yàn)證碼的本質(zhì)屬性安全性,除了防止惡意破解密碼、刷票、羊毛黨、論壇灌水、爬蟲(chóng)等行為外,還是用戶(hù)與網(wǎng)站信息安全的有力保障。 下面是我們安服技術(shù)人員給的從安全角度看,為什么 Web 登錄需要驗(yàn)證碼? 因?yàn)槟愕?WEB 站有時(shí)會(huì)碰到客戶(hù)機(jī)惡意攻擊。其中一種很常見(jiàn)的攻擊手段就是身份欺騙,它通過(guò)在客戶(hù)端腳本寫(xiě)入一些代碼,然后利用其客戶(hù)機(jī)在網(wǎng)站、論壇反復(fù)登陸,或者攻擊者創(chuàng)建一個(gè) HTML 窗體,其窗體如果包含了你注冊(cè)窗體或發(fā)帖窗體等相同的字段,然后利用"http-post"傳輸數(shù)據(jù)到服務(wù)器,服務(wù)器會(huì)執(zhí)行相應(yīng)的創(chuàng)建帳戶(hù),提交垃圾數(shù)據(jù)等操作。如果服務(wù)器本身不能有效驗(yàn)證并拒絕此非法操作,它會(huì)很?chē)?yán)重耗費(fèi)其系統(tǒng)資源,降低網(wǎng)站性能甚至使程序崩潰。 下面引用 2 個(gè)常見(jiàn)的 HTML 攻擊舉例說(shuō)明: 1 、HTML 語(yǔ)法暴露的賬戶(hù)安全問(wèn)題 標(biāo)準(zhǔn)的 HTML 語(yǔ)法中,支持在 form 表單中使用標(biāo)簽來(lái)創(chuàng)建一個(gè) HTTP 提交的屬性,現(xiàn)代的 WEB 登錄中,常見(jiàn)的是下面這樣的表單:
用戶(hù)名: 密碼:
form 表單會(huì)在提交請(qǐng)求時(shí),會(huì)獲取 form 中 input 標(biāo)簽存在 name 的屬性,作為 HTTP 請(qǐng)求的 body 中的參數(shù)傳遞給后臺(tái),進(jìn)行登錄校驗(yàn)。 例如賬號(hào)是 user1,密碼是 123456,那么在提交登錄的時(shí)候會(huì)給后臺(tái)發(fā)送的 HTTP 請(qǐng)求如下( Chrome 或者 FireFox 開(kāi)發(fā)者工具捕獲,需開(kāi)啟 Preserve log ): 可以發(fā)現(xiàn)即便 password 字段是黑點(diǎn),但是本機(jī)仍以明文的形式截獲請(qǐng)求。 2 、HTTP 協(xié)議傳輸直接暴露用戶(hù)密碼字段 在網(wǎng)絡(luò)傳輸過(guò)程中,被嗅探到的話(huà)會(huì)直接危及用戶(hù)信息安全,以 Fiddler 或 Wireshark 為例,發(fā)現(xiàn)捕獲的 HTTP 報(bào)文中包含敏感信息: 而現(xiàn)在流行的判斷訪(fǎng)問(wèn) WEB 程序是合法用戶(hù)還是惡意操作的方式,就是采用一種叫“字符校驗(yàn)”的技術(shù),WEB 網(wǎng)站像現(xiàn)在的動(dòng)網(wǎng)論壇,他采用達(dá)到方法是為客戶(hù)提供一個(gè)包含隨即字符串的圖片,用戶(hù)必須讀取這些字符串,然后隨登陸窗體或者發(fā)帖窗體等用戶(hù)創(chuàng)建的窗體一起提交。 那么該怎么辦?有什么防護(hù)的辦法呢?這時(shí)候我們的安全研究人員就發(fā)明了驗(yàn)證碼。具體發(fā)明史記介紹詳見(jiàn)我前幾篇文章的介紹。因?yàn)槿说脑?huà),可以很容易讀出圖片中的數(shù)字,但如果是一段客戶(hù)端攻擊代碼,通過(guò)一般手段是很難識(shí)別驗(yàn)證碼的這樣可以確保當(dāng)前訪(fǎng)問(wèn)是來(lái)自一個(gè)人而非機(jī)器和 AI 機(jī)器人。 驗(yàn)證碼: 就是將一串隨機(jī)產(chǎn)生的數(shù)字或符號(hào),生成一幅圖片,圖片里加上一些干擾象素(防止 OCR ),由用戶(hù)肉眼識(shí)別其中的驗(yàn)證碼信息,輸入表單提交網(wǎng)站驗(yàn)證,驗(yàn)證成功后才能使用某項(xiàng)功能。? 典型應(yīng)用場(chǎng)景: 網(wǎng)站安全:垃圾注冊(cè)、惡意登錄、惡意攻擊 數(shù)據(jù)安全:數(shù)據(jù)爬取、數(shù)據(jù)破壞、賬號(hào)盜用 運(yùn)營(yíng)安全:惡意刷單、虛假秒殺、虛假評(píng)論、占座、刷票 交易安全:虛假交易、惡意套現(xiàn)、盜卡支付 意義: 現(xiàn)在網(wǎng)站為了防止用戶(hù)利用機(jī)器人自動(dòng)注冊(cè)、登錄、灌水、刷票、薅羊毛等,都采用了驗(yàn)證碼技術(shù)。 當(dāng)下,隨著科技的發(fā)展,驗(yàn)證碼在交互形式上也得到了很大的提升,越來(lái)越注重用戶(hù)體驗(yàn), 比如頂象的智能無(wú)感驗(yàn)證,推出了無(wú)需驗(yàn)證即可判別使用者身份的驗(yàn)證體系,其原理其實(shí)也非常簡(jiǎn)單。風(fēng)控引擎在用戶(hù)嘗試登陸或者做其他傳統(tǒng)需要驗(yàn)證的操作行為前,就會(huì)對(duì)操作環(huán)境進(jìn)行掃描,并對(duì)一些關(guān)鍵參數(shù)做分析,包括常用 IP 、地理位置、使用習(xí)慣、惡意特征、設(shè)備指紋等。 基于大量模型和數(shù)據(jù)的分析,風(fēng)控引擎便可以對(duì)用戶(hù)身份做出一個(gè)預(yù)先的判斷。如果風(fēng)控引擎認(rèn)為使用者是“好人”,便直接放行;如果判定為“機(jī)器”,則不予放行;如果存疑,便給出驗(yàn)證碼滑一滑。 驗(yàn)證碼能有效防止對(duì)某一個(gè)特定注冊(cè)用戶(hù)用特定程序暴力破解方式進(jìn)行不斷的登陸嘗試,實(shí)際上用驗(yàn)證碼是現(xiàn)在很多網(wǎng)站通行的方式(比如 12306 、各大銀行網(wǎng)上個(gè)人銀行登錄頁(yè),BBS 論壇等),雖然登陸麻煩一點(diǎn),但是對(duì)網(wǎng)站還來(lái)說(shuō)這個(gè)功能還是很有必要,也很重要。
來(lái)源:V2EX
發(fā)布時(shí)間:2020-08-27 18:38:38