因為做官網,沒有内容,是以就想辦法從oschina中寫的部落格裡弄點内容,這就要用到爬蟲了。
然後就花了幾分鐘搞了一下,步驟如下:
第一步,寫個方法抓目錄:
<a href="http://my.oschina.net/tinyframework/blog/270209#">?</a>
1
2
3
4
5
6
7
8
9
10
11
<code>public</code> <code>static</code> <code>void</code> <code>processcategory(string categoryid) {</code>
<code> </code><code>watcher watcher =</code><code>new</code> <code>watcherimpl();</code>
<code> </code><code>spider spider =</code><code>new</code> <code>spiderimpl();</code>
<code> </code><code>watcher.addprocessor(</code><code>new</code> <code>oschinacategoryprocessor());</code>
<code> </code><code>quicknamefilter<htmlnode> nodefilter =</code><code>new</code> <code>quicknamefilter<htmlnode>();</code>
<code> </code><code>nodefilter.setnodename(</code><code>"li"</code><code>);</code>
<code> </code><code>nodefilter.setincludeattribute(</code><code>"class"</code><code>,</code><code>"blog"</code><code>);</code>
<code> </code><code>watcher.setnodefilter(nodefilter);</code>
<code> </code><code>spider.addwatcher(watcher);</code>
<code> </code><code>spider.processurl(</code><code>"http://my.oschina.net/tinyframework/blog?catalog="</code><code>+categoryid);</code>
<code> </code><code>}</code>
第二步,寫個方法抓文章:
<code>public</code> <code>static</code> <code>void</code> <code>processtopic(string pageid) {</code>
<code> </code><code>watcher.addprocessor(</code><code>new</code> <code>oschinatopicprocessor());</code>
<code> </code><code>nodefilter.setnodename(</code><code>"div"</code><code>);</code>
<code> </code><code>nodefilter.setincludeattribute(</code><code>"class"</code><code>,</code><code>"blogcontent"</code><code>);</code>
<code> </code><code>spider.processurl(</code><code>"http://my.oschina.net/tinyframework/blog/"</code><code>+pageid);</code>
第三步,寫一下目錄處理器
12
13
14
<code>public</code> <code>class</code> <code>oschinacategoryprocessor</code><code>implements</code> <code>processor {</code>
<code> </code><code>public</code> <code>void</code> <code>process(string url, htmlnode node) {</code>
<code> </code><code>htmlnode a = node.getsubnoderecursively(</code><code>"h2"</code><code>).getsubnode(</code><code>"a"</code><code>);</code>
<code> </code><code>string href = a.getattribute(</code><code>"href"</code><code>);</code>
<code> </code><code>string topicid = href.substring(href.lastindexof(</code><code>'/'</code><code>) +</code><code>1</code><code>);</code>
<code> </code><code>system.out.printf(</code><code>"<a href=\"%s.page\">%s</a>\n"</code><code>, topicid, a.getpuretext());</code>
<code> </code><code>try</code> <code>{</code>
<code> </code><code>thread.sleep(</code><code>200</code><code>);</code><code>//這裡怕oschina拒絕通路,休息一下</code>
<code> </code><code>}</code><code>catch</code> <code>(interruptedexception e) {</code>
<code> </code><code>e.printstacktrace();</code>
<code> </code><code>}</code>
<code> </code><code>oschinaspider.processtopic(topicid);</code>
<code>}</code>
第四步,寫一下文章處理器:
<code>public</code> <code>class</code> <code>oschinatopicprocessor</code><code>implements</code> <code>processor {</code>
<code> </code><code>string outoutpath=</code><code>"e:\\oschina\\"</code><code>;</code>
<code> </code><code>string filename=outoutpath+url.substring(url.lastindexof(</code><code>'/'</code><code>)+</code><code>1</code><code>)+</code><code>".page"</code><code>;</code>
<code> </code><code>ioutils.writetooutputstream(</code><code>new</code> <code>fileoutputstream(filename),node.tostring(),</code><code>"utf-8"</code><code>);</code>
<code> </code><code>}</code><code>catch</code> <code>(exception e) {</code>
第五步,寫一下main方法:
<code>public</code> <code>static</code> <code>void</code> <code>main(string[] args) {</code>
<code> </code><code>processcategory(</code><code>"377413"</code><code>);</code>
第六步,看結果:
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<code><</code><code>a</code> <code>href</code><code>=</code><code>"214018.page"</code><code>>300粉絲集結号吹響了,可以開源重量級的流程引擎或ui引擎 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"268983.page"</code><code>>tiny執行個體:tiny架構官網制作過程詳解 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"267764.page"</code><code>>從應用示例來認識tiny架構 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"266707.page"</code><code>>tinyrmi---rmi的封裝、擴充及踩到的坑的解決 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"233111.page"</code><code>>悠然亂彈:五一部署了sonar有hudson,釋出了1.1.0正式版到maven中央倉庫 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"228712.page"</code><code>>悠然亂彈:我的架構觀 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"226850.page"</code><code>>tinydbf-用200行的dbf解析器來展示良好架構設計 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"225959.page"</code><code>>新增tinymessage,并實作郵件接收處理 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"223310.page"</code><code>>如何讓程式員更容易的開發web界面?重構smartadmin展示tinyui架構 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"221930.page"</code><code>>velocity宏定義的坑與解決辦法 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"220619.page"</code><code>>不一樣的味道--html及xml解析、格式化、周遊 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"214309.page"</code><code>>tinyini開源了~~ </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"213622.page"</code><code>>tiny分布式計算架構開源了 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"212682.page"</code><code>>悠然亂彈:切身體會來說明人性化設計的重要性 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"212639.page"</code><code>>tiny formater </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"206718.page"</code><code>>tiny架構faq彙集 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"205733.page"</code><code>>tiny架構啟動過程日志 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"205279.page"</code><code>>tiny之web工程建構 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"204994.page"</code><code>>開源架構tiny之内容組成 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"203075.page"</code><code>>tiny後續版本需求整理 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"202825.page"</code><code>>tinyui元件開發示例 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"201307.page"</code><code>>tinydbrouter開源喽~~~ </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"201071.page"</code><code>>tiny中文分詞 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"200604.page"</code><code>>在linux下搭建tiny開發環境 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"200408.page"</code><code>>一個maven工程中,不同的子產品需要不同的jdk進行編譯的解決方案 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"199515.page"</code><code>>業務流程引擎 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"196486.page"</code><code>>tiny并行計算架構之複雜示例 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"196373.page"</code><code>>tiny并行計算架構之實作機理 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"196070.page"</code><code>>tiny并行計算架構之使用介紹 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"194610.page"</code><code>>tinyspider開源喽~~~ </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"194578.page"</code><code>>tinyhtmlparser開源喽~~~ </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"194574.page"</code><code>>tinyxmlparser開源喽~~~ </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"194551.page"</code><code>>tinydbrouter </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"194413.page"</code><code>>開源前要做好哪些準備工作? </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"192778.page"</code><code>>分布式鎖的簡單實作 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"189259.page"</code><code>>tinyioc </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"188780.page"</code><code>>tinydbcluster vs routing4db </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"186637.page"</code><code>>文檔生成架構 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"186583.page"</code><code>>資料庫分區分片架構 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"185134.page"</code><code>>分區分表支援 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"178153.page"</code><code>>resetting the root password for mysql </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"177224.page"</code><code>>tiny架構之内容組成 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"176153.page"</code><code>>jsp放入jar包支援 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"172180.page"</code><code>>流程式程式設計 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"170799.page"</code><code>>強悍的上下文context </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"170763.page"</code><code>>類spring ioc容器 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"170741.page"</code><code>>虛拟檔案系統vfs </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"170401.page"</code><code>>bigpipe為什麼可以節省時間? </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"170326.page"</code><code>>xmlparser和htmlparser </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"170154.page"</code><code>>線程組 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"170117.page"</code><code>>流程自動化布局 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"169813.page"</code><code>>涉密資料的處理 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"169553.page"</code><code>>word文檔生成 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"169509.page"</code><code>>如何快速開發網站? </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"169399.page"</code><code>>如何讓web.xml變得簡潔? </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"169339.page"</code><code>>hello,world 百态 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"169278.page"</code><code>>關于中文處理方面的研究 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"169260.page"</code><code>>建構網絡爬蟲?so easy </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"169206.page"</code><code>>ui開發的終極解決方案 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"168896.page"</code><code>>基于業務單元的開發與部署模式 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"168477.page"</code><code>>一種基于主客體模型的權限管理架構 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"167430.page"</code><code>>mda資料校驗規則定義 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"166930.page"</code><code>>tiny之7*24叢集服務方案 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"166893.page"</code><code>>tiny設計原則 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"166846.page"</code><code>>建構tiny生态圈 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"166845.page"</code><code>>tiny架構設計理念 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"166843.page"</code><code>>基于實體模型開發主題管理簡析 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"166842.page"</code><code>>mda模型定義及擴充 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"165566.page"</code><code>>js、css合并帶來的效率提升 </</code><code>a</code><code>></code>
<code><</code><code>a</code> <code>href</code><code>=</code><code>"165402.page"</code><code>>主題切換及其管理 </</code><code>a</code><code>></code>
生成的目錄清單:
<code>e:\oschina 的目錄</code>
<code>[.] [..] </code><code>165402</code><code>.page </code><code>165566</code><code>.page </code><code>166842</code><code>.page</code>
<code>166843</code><code>.page </code><code>166845</code><code>.page </code><code>166846</code><code>.page </code><code>166893</code><code>.page </code><code>166930</code><code>.page</code>
<code>167430</code><code>.page </code><code>168477</code><code>.page </code><code>168896</code><code>.page </code><code>169206</code><code>.page </code><code>169260</code><code>.page</code>
<code>169278</code><code>.page </code><code>169339</code><code>.page </code><code>169399</code><code>.page </code><code>169509</code><code>.page </code><code>169553</code><code>.page</code>
<code>169813</code><code>.page </code><code>170117</code><code>.page </code><code>170154</code><code>.page </code><code>170326</code><code>.page </code><code>170401</code><code>.page</code>
<code>170741</code><code>.page </code><code>170763</code><code>.page </code><code>170799</code><code>.page </code><code>172180</code><code>.page </code><code>176153</code><code>.page</code>
<code>177224</code><code>.page </code><code>178153</code><code>.page </code><code>185134</code><code>.page </code><code>186583</code><code>.page </code><code>186637</code><code>.page</code>
<code>188780</code><code>.page </code><code>189259</code><code>.page </code><code>192778</code><code>.page </code><code>194413</code><code>.page </code><code>194551</code><code>.page</code>
<code>194574</code><code>.page </code><code>194578</code><code>.page </code><code>194610</code><code>.page </code><code>196070</code><code>.page </code><code>196373</code><code>.page</code>
<code>196486</code><code>.page </code><code>199515</code><code>.page </code><code>200408</code><code>.page </code><code>200604</code><code>.page </code><code>201071</code><code>.page</code>
<code>201307</code><code>.page </code><code>202825</code><code>.page </code><code>204994</code><code>.page </code><code>205279</code><code>.page </code><code>205733</code><code>.page</code>
<code>206718</code><code>.page </code><code>212639</code><code>.page </code><code>212682</code><code>.page </code><code>213622</code><code>.page </code><code>214018</code><code>.page</code>
<code>214309</code><code>.page </code><code>220619</code><code>.page </code><code>221930</code><code>.page </code><code>223310</code><code>.page </code><code>225959</code><code>.page</code>
<code>226850</code><code>.page </code><code>228712</code><code>.page </code><code>233111</code><code>.page </code><code>266707</code><code>.page </code><code>267764</code><code>.page</code>
<code>268983</code><code>.page</code>
第7步,把檔案放入tinysite中去。
爽,收工