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)!>>> 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)的是下面這樣的表單:
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