<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7151106455804560184</id><updated>2024-11-09T00:49:10.681+08:00</updated><category term="Apple"/><category term="iPhone"/><category term="iPad"/><category term="Google"/><category term="Smart Phone"/><category term="Facebook"/><category term="APP"/><category term="Internet"/><category term="Samsung"/><category term="Android"/><category term="3C"/><category term="Microsoft"/><category term="Amazon"/><category term="Tablet"/><category term="Yahoo"/><category term="Game"/><category term="HTC"/><category term="Security"/><category term="Siri"/><category term="TV"/><category term="Nokia"/><category term="Motorola"/><category term="Wireless"/><category term="iOS"/><category term="Sony"/><category term="Win8"/><category term="Chrome"/><category term="Blackberry"/><category term="Camera"/><category term="Keyboard"/><category term="LG"/><category term="Laptop"/><category term="iCloud"/><category term="Kodak"/><category term="Megaupload"/><category term="ASUS"/><category term="iBook"/><category term="憤怒鳥"/><category term="Firefox"/><category term="Fujitsu"/><category term="HP"/><category term="Lenovo"/><category term="TV Display Center"/><category term="WebHarvest"/><category term="AOL"/><category term="Canon"/><category term="Cell Phone"/><category term="Heritrix"/><category term="IBM"/><category term="Intel"/><category term="Oracle"/><category term="Ultrabook"/><category term="Web 2.0"/><category term="iPod"/><category term="AMD"/><category term="Battery"/><category term="CSS"/><category term="Dell"/><category term="Java"/><category term="LTE"/><category term="Linux"/><category term="Nikon"/><category term="Nintendo"/><category term="Panasonic"/><category term="PayPal"/><category term="Phone"/><category term="SEO"/><category term="SOPA"/><category term="Symantec"/><category term="WhatsApp"/><category term="XiaMi"/><category term="iBook Author"/><category term="小米機"/><category term="微信"/><category term="華為"/><category term="行車紀錄器"/><category term="賈伯斯"/><title type='text'>3C 產品</title><subtitle type='html'>Lenovo X201, Apple mini-server, LU CU515</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>530</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-4966569605833272207</id><published>2013-03-02T07:17:00.002+08:00</published><updated>2013-03-02T07:18:37.359+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Cell Phone"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>手機藏了一堆不能說的祕密 快來學這10招保密防諜</title><content type='html'>&lt;br /&gt;
來自《Huffington Post》的專欄作家 Adam Levin 為大家所提供 10 個網路安全的「防身術」，一起來參考看看：&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;1、一定要為你的手機設定密碼&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
或許你身邊還是有不少朋友拒絕為手機輸入「傻瓜密碼」，他們不認為簡單的一個「Z」字圖、或簡易的 4 個數字就能達到保護手機的功能，但這個想法並不完全正確。就像擺隻「看門狗」的道理一樣，嚇嚇人也好，因為竊賊永遠在找「最好下手」的對象。&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;2、用每間公司專屬的 App 購物，別用瀏覽器&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
如果你能用亞馬遜書店（Amazon.com）專屬的 App 進行線上購物的話，就別用瀏覽器。&lt;br /&gt;
&lt;br /&gt;
其它的例子也是一樣，包括買賣股票、訂電影票、訂餐廳和租車等，因為有良心的公司在設計 App 的時候，大多會將防詐騙的功能列入考量。&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;3、敏感的帳號上，千萬別在線上持續登入或讓網頁記住你的帳號密碼&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
應該沒有人會在自己的提款卡的正面寫上密碼，然後就大剌剌的擺在辦公桌上吧？&lt;br /&gt;
&lt;br /&gt;
同理，你也不該禁不起誘惑地在網路上勾選「記住我的帳號密碼」這種懶人帳號管理術，勤勞一點吧，在你銀行、Paypal、電子郵件、公司等敏感的帳號，還是按部就班的在每次登入前輸入帳號密碼，否則將會讓自己手機遺失後，資訊一覽無疑！&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;4、關掉自動跳轉 Wi-Fi 功能，別輕易就連線到你不信任的免費 Wi-Fi&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
不管你在使用電腦、平版或者手機都一樣，請記得把自動跳轉連線到 Wi-Fi 的功能給關掉，或至少要經過你的同意。否則駭客們可輕易的透過軟體駭進你的裝置裡頭，這個警訊資訊專家在 10 年前就已經提出警告了。&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;5、別隨時把藍芽裝置打開&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
關於透過藍芽來駭進裝置裡頭這件事，早已經發展出「Bluejacking」、「Bluesnarfing」還有「Bluebugging」等專有 名詞了，沒在使用藍芽的時候，請記得把它關起來。另外，因為藍芽有使用距離的限制，因此特別注意在飯店、機場等人多的公共場所，或許都有駭客正在虎視眈 眈。&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;6、智慧手機除役前，記得要把帳號密碼都給消除乾淨&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
一年換一支新的智慧手機已經不是新鮮事了，但要把舊的手機送給別人或拿到網路上拍賣前，請記得一定要再三檢查是否有敏感的帳號密碼遺留在手機上。&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;7、別下載免費的 App，因為它們其實「不便宜」&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
有些免費的 App 軟體其實背後大有文章，除了透過下載後進入你的裝置裡頭竊取資訊外，也有可能透過你的手機裝置做為發動攻擊的據點，用你的帳號自動發送垃圾簡訊與電子郵件。&lt;br /&gt;
&lt;br /&gt;
所以要下載免費 App 軟體之前，一定要切記確認發行公司是否可信，再花多一點時間讀一下其他用戶的評論，不要看到「免費」兩個字就貿然下載。&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;8、別在手機上存放重要敏感帳戶資訊&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
為了怕記不住一些重要的資訊，把它拍個照存進手機相簿裡雖然很方便，但同時也將自己暴露在風險之中。&lt;br /&gt;
&lt;br /&gt;
更別提手機上超好的用記事本功能 App，新血來潮的把所有帳號密碼都給整理進去，無疑更是邀請駭客們登堂入室；手機隨時連線登入的電子郵件與 Dropbox 帳戶等雲端硬碟也是一樣，記得別把重要資訊給擺進去。&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;9、定期清除瀏覽記錄&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
你的瀏覽紀錄上仍有大量的訊息存在，尤其在你登入過電子郵件、線上購物或銀行的帳戶之後，一定要記得把瀏覽記錄給清除掉，否則有心人士還是很容易找到他們需要的資訊，來把你洗劫一空。&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;10、趕快下載遠端清除（remote wiping）功能的 App&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
像是 Apple 的「Find My Phone」App，除了可以幫你找到失蹤的手機，還可以在遠端清除你的個人資料，雖然有心人士還是可以阻擋這些功能，但就像我們之前所說的「看門狗」理論一樣，多一層保護總是強過沒有好些。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/4966569605833272207/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2013/03/10.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/4966569605833272207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/4966569605833272207'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2013/03/10.html' title='手機藏了一堆不能說的祕密 快來學這10招保密防諜'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.55983449999997</georss:point><georss:box>24.860982 121.23711099999997 25.321168 121.88255799999996</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-6832658988336065564</id><published>2012-10-28T07:08:00.000+08:00</published><updated>2012-10-28T07:10:50.531+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>網路密碼</title><content type='html'>&lt;br /&gt;
想猜中他人密碼，調查宣稱輸入password（密碼）準沒錯。年度最常見網路密碼出爐，儘管安全專家每年不斷老話重談，要大家選用更安全的密碼，但password、123456及12345678仍穩坐前3名。&lt;br /&gt;
&lt;br /&gt;
英國「每日郵報」（Daily Mail）報導，研究人員表示，資安公司SplashData這份統計駭客公布的資料而整理出的年度最常見網路密碼排行榜，可能會讓投入大把時間上網的人心驚膽跳。&lt;br /&gt;
&lt;br /&gt;
2012年度最糟密碼排行榜如下，括號中為與2011年的比較。&lt;br /&gt;
&lt;br /&gt;
1. password (不變)&lt;br /&gt;
&lt;br /&gt;
2. 123456 (不變)&lt;br /&gt;
&lt;br /&gt;
3. 12345678 (不變)&lt;br /&gt;
&lt;br /&gt;
4. abc123 (上升1名)&lt;br /&gt;
&lt;br /&gt;
5. qwerty (下降1名)&lt;br /&gt;
&lt;br /&gt;
6. monkey (不變)&lt;br /&gt;
&lt;br /&gt;
7. letmein (上升1名)&lt;br /&gt;
&lt;br /&gt;
8. dragon (上升2名)&lt;br /&gt;
&lt;br /&gt;
9. 111111 (上升3名)&lt;br /&gt;
&lt;br /&gt;
10. baseball (上升1名)&lt;br /&gt;
&lt;br /&gt;
11. iloveyou (上升2名)&lt;br /&gt;
&lt;br /&gt;
12. trustno1 (下降3名)&lt;br /&gt;
&lt;br /&gt;
13. 1234567 (下降6名)&lt;br /&gt;
&lt;br /&gt;
14. sunshine (上升1名)&lt;br /&gt;
&lt;br /&gt;
15. master (下降1名)&lt;br /&gt;
&lt;br /&gt;
使用上述密碼的人，未來最可能會成為駭客下手的對象。&lt;br /&gt;
&lt;br /&gt;
雅虎、人際關係網 (LinkedIn)、約會網eHarmony及音樂網Last.fm，都曾嚴重遭駭。&lt;br /&gt;
&lt;br /&gt;
SplashData執行長斯藍 (Morgan Slain) 指出：「我們希望加強宣傳選用過於簡略的密碼有多危險後，更多人能開始採取簡單步驟，設定更安全的密碼以及在不同網站使用不同密碼，以達到保護自己的目的。」&lt;br /&gt;
&lt;br /&gt;
SplashData這份25個最常見網路密碼排行榜，是來自駭客公布於網上的檔案，當中涵蓋數百萬個遭駭密碼。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/6832658988336065564/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/10/blog-post.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/6832658988336065564'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/6832658988336065564'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/10/blog-post.html' title='網路密碼'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台湾 台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.8609925 121.2439775 25.3211575 121.87569149999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-8130279027380266841</id><published>2012-07-15T11:49:00.000+08:00</published><updated>2012-07-15T11:49:01.749+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="APP"/><title type='text'>iOS app與android app開發獲利探討</title><content type='html'>&lt;br /&gt;
最近的網路觀察常看到寫開發者用iOS APP可以賺多少錢或是創造多少曝光度之類的文章，卻十分少見用Android app賺多少錢，遊戲開發如此，應用開發也是如此，究竟是為何？國內可以說七天鑑賞期爭議，但連國外也很少相關文章…&lt;br /&gt;&lt;br /&gt;觀點：因為Android本來就比較不好賺…&lt;br /&gt;&lt;br /&gt;因為獲利有問題，究竟是為什麼獲利有問題呢？是成本？是開發人事？我記得沒錯的話Java比較好寫阿。&lt;br /&gt;&lt;br /&gt;觀點：&lt;br /&gt;&lt;br /&gt;開發成本太高了，維護成本更高&lt;br /&gt;目前android最少有三種常用尺寸（不含平板），如果是 web app 的就比例調整還好，但是有牽涉到較多視覺設計、版位調整的就很麻煩，開發是如此，維護也是，假設有個應用程式在iOS上，基本上只要做一次也只有一個，但是在android，就至少要設定三份&lt;br /&gt;&lt;br /&gt;這麼多尺寸規格真的是痛苦，Android app始終沒辦法有質感與亮眼的app非常可惜…&lt;br /&gt;&lt;br /&gt;關於遊戲app的觀點：&lt;br /&gt;&lt;br /&gt;工具應用類型 App 的情況我不懂，但以遊戲類 App 來說，光是得考慮在不同行動裝置上的圖片解析度、介面配置以及記憶體容量，就是個令遊戲開發者頭痛的問題。&lt;br /&gt;&lt;br /&gt;要做一流的遊戲，就得盡最大可能帶給玩家最好最舒適的視覺呈現，而不會因為裝置硬體的效能高低，造成遊戲品質的嚴重差異。&lt;br /&gt;在 Android 上不是做不到，只是會非常地費力。如果要在大多數 Android 裝置都可以達到相同的高遊戲品質，我想不只需要很多的測試機和測試部隊，更可能要燒掉工程師的很多頭髮和腦細胞… XD相對而言，在 iOS 裝置上，目前只有三種解析度的分別，可以算是容易許多。&lt;br /&gt;對於小型遊戲公司或獨立開發者來說，與其費盡心思在搞硬體裝置的相容性問題，我想大部分開發者會更願意把精力投注在遊戲性和遊戲內容上。&lt;br /&gt;畢竟在遊戲上市後，我們想看到的是玩家對於遊戲內容與遊戲樂趣的討論聲音，而不是在說「我的○○機不能玩」或「為何不支援 xx 版本」這種事情上吧。 =w=我想這是為何許多的國外獨立遊戲開發者，會首選 iOS 平台為目標之故。&lt;br /&gt;&lt;br /&gt;猛然想起聯X科在大舉徵android app開發人才的原因，果然要下重本阿…該不會要大企業才真的能做出有獲利或是好的app吧？（高鐵的android app是由神x公司開發，但好像反應滿糟的…）&lt;br /&gt;&lt;br /&gt;小結： ios平台單純，所以比較多個人或小公司願意投入，而android即使同樣是android系統，不同手機牌子app都得有小細節要修改，成本較高。&lt;br /&gt;&lt;br /&gt;只能殷切的期盼，在王雪紅老闆關心政治議題之餘，能夠致力於先將解析度做一定規模的整合，或是三星等其他廠牌能夠商訂出一些規範，我想充電器都能標準化了，為何手機或平板解析度要這樣2.8吋到10.1吋各個尺寸都有？&lt;br /&gt;&lt;br /&gt;只能殷切的期盼，Google這麼龐大的企業體系，雖然不太靠android賺錢，但是能否把上述提到這幾點如同ics的ui設定好規範，以及把整個android market的開放以及審查制度調整好。&lt;br /&gt;&lt;br /&gt;只能殷切期盼，iPhone還要賣更好，這些人才會醒來…</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/8130279027380266841/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/07/ios-appandroid-app.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/8130279027380266841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/8130279027380266841'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/07/ios-appandroid-app.html' title='iOS app與android app開發獲利探討'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-2034110745006633238</id><published>2012-03-20T08:31:00.000+08:00</published><updated>2012-03-20T08:31:10.285+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Linux"/><title type='text'>Linux 基本使用說明</title><content type='html'>&lt;br /&gt;
&lt;b&gt;一、Linux 操作環境簡介：&lt;/b&gt;&lt;br /&gt;多人環境：Unix 最好的就是可以提供多人共用，而 Linux 自然也可以支援多工環境了!!&lt;br /&gt;在 Linux 上面允許不同的人使用，而且每個人都有其特殊的權限，只有一個人具有至高無上的權力，那就是 root&amp;nbsp; (系統管理員)。&lt;br /&gt;
多工行為：Linux 可以同時由不同的人使用『同一個檔案』，只要有權限不論是開啟或者是修改。&lt;br /&gt;多個管理視窗：在 Linux 當中，預設提供了六個文字界面登入視窗，以及一個圖形界面，你可以使用 [Alt]+[F1].....[F7]來切換不同的終端機界面。&lt;br /&gt;指令查詢：在 Linux 當中，不了解指令參數如何使用，可以在指令後加上 -h 來查詢，如果希望進一步了解，可以用 man command (要查詢的指令)。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;二、基本指令：&lt;/b&gt;&lt;br /&gt;瀏覽目錄&lt;br /&gt;ls&lt;br /&gt;-all：全部列出，並分行呈現&lt;br /&gt;-l：全部列出&lt;br /&gt;&lt;br /&gt;查詢目錄路徑&lt;br /&gt;pwd&lt;br /&gt;&lt;br /&gt;變更使用者&lt;br /&gt;chown&lt;br /&gt;-R：全部目錄及檔案都轉換&lt;br /&gt;chown -R user.group abc/：將 abc 這個目錄全部都轉換給 user 這個使用者和 group 這個群組&lt;br /&gt;&lt;br /&gt;
變更權限&lt;br /&gt;chmod&lt;br /&gt;-rwxrwxrwx ：檔案屬性三個一組由 2 進位組成，r=4、w=2、x=1&lt;br /&gt;如果是 5 就是表示 r-x、6 就是表示 rw-，以此類推&lt;br /&gt;前三個藍色字代表檔案或目錄使用者的權限；&lt;br /&gt;中間三個綠色字代表檔案或目錄群組的權限；&lt;br /&gt;後面三個紅色字代表檔案或目錄任何人的權限；&lt;br /&gt;-R：全部目錄及檔案都轉換&lt;br /&gt;chmod -R 744 abc/：全部列出將 abc 這個目錄及檔案，全部都換成轉換給 user 這個使用者和 group 這個群組&lt;br /&gt;&lt;br /&gt;查看目前登入者的帳號&lt;br /&gt;whoami&lt;br /&gt;&lt;br /&gt;
查看目前所有系統登入者的帳號&lt;br /&gt;who&lt;br /&gt;&lt;br /&gt;查看之前所有系統登入者的資料&lt;br /&gt;last&lt;br /&gt;ip&lt;br /&gt;&lt;br /&gt;系統重新開機&lt;br /&gt;reboot&lt;br /&gt;shutdown&lt;br /&gt;-r：重新開機與reboot意思相同&lt;br /&gt;-h：重新開機並關閉電源&lt;br /&gt;-h +5：五分鐘後，重新開機並關閉電源&lt;br /&gt;ip&lt;br /&gt;login 登入系統&lt;br /&gt;logout 登出系統&lt;br /&gt;&lt;br /&gt;文字編輯軟體&lt;br /&gt;vi&lt;br /&gt;開始編輯檔案，請必須先按「a」或是「i」來進行編輯&lt;br /&gt;如果視窗左下解出「-insert」或是「-插入」就可以開始編輯檔案&lt;br /&gt;按「Esc」可以作上層編輯或是下層指令之轉換&lt;br /&gt;:w寫入檔案&lt;br /&gt;:q離開檔案&lt;br /&gt;:q!強制離開檔案&lt;br /&gt;&lt;br /&gt;
nano (RH9 以前為 pico)&lt;br /&gt;指令操作下層有說明&lt;br /&gt;&lt;br /&gt;觀看系統正在執行的行程&lt;br /&gt;ps&lt;br /&gt;ps -aux|more：常用方式&lt;br /&gt;參數說明：&lt;br /&gt;a :選擇所有的程序列出&lt;br /&gt;u :所有使用者的程序均列出&lt;br /&gt;x :所有 tty 的程序列出&lt;br /&gt;ps&lt;br /&gt;USER：說明該程序是屬於哪一個人的；&lt;br /&gt;PID：該程序的代號；&lt;br /&gt;%CPU：代表該程序使用了多少 CPU 資源；&lt;br /&gt;%MEM：代表該程序使用了多少的 RAM ；&lt;br /&gt;VSZ, RSS：佔去的 ram 的大小 ( bytes)；&lt;br /&gt;TTY：是否為登入者執行的程序？若為 tty1-tty6 則為本機登入者，&lt;br /&gt;若為 pts/?? 則為遠端登入者執行的程序；&lt;br /&gt;STAT：該程序的狀態，( R )為可執行的，( S )&lt;br /&gt;為該程序正在睡眠中，就是沒有執行了，( T ) 正在偵測或者是停止了，&lt;br /&gt;( Z ) 僵屍程式，就是 zombie 死掉的程式啦！需要以 kill 除去囉；&lt;br /&gt;START：該程序開始的日期；&lt;br /&gt;TIME：該程序跑了多久的時間；&lt;br /&gt;COMMAND：該程序的內容；&lt;br /&gt;&lt;br /&gt;觀看前幾名系統正在執行的行程&lt;br /&gt;top&lt;br /&gt;觀看系統記憶體使用量&lt;br /&gt;free&lt;br /&gt;&lt;br /&gt;刪除系統正在執行的行程&lt;br /&gt;kill&lt;br /&gt;kill 1999：刪除某個程序，利用 ps 來查詢 PID 值&lt;br /&gt;參數說明：&lt;br /&gt;-1：刪除某個程序 (類似 reload)&lt;br /&gt;-2：使用者中斷該工作，類似 [Ctrl]+c 來中斷一個工作&lt;br /&gt;-9：強制殺掉一個工作，並立刻執行&lt;br /&gt;-15：停止一個工作 (這是預設值)&lt;br /&gt;&lt;br /&gt;可觀看系統資訊，包括你的核心版本、主機名稱、CPU 資訊&lt;br /&gt;uname&lt;br /&gt;uname -a：查詢所有系統資訊&lt;br /&gt;&lt;br /&gt;查看系統磁碟容量資訊&lt;br /&gt;df&lt;br /&gt;df -h：查詢所有磁碟容量，並以 mb 為單位呈現&lt;br /&gt;&lt;br /&gt;查看系統分割區容量資訊&lt;br /&gt;du&lt;br /&gt;du -s -h：查詢某個分割區容量，並以 mb 為單位呈現&lt;br /&gt;&lt;br /&gt;掛載相關設備的方式&lt;br /&gt;mount&lt;br /&gt;mount -t auto /(掛載設備名稱，在 /dev/ 下面) /(預計要在本機對應的目錄名稱，目錄必須先建立)&lt;br /&gt;如果不清楚要 mount device 的名稱，可以先用 ls -l /dev/* (usb 隨身碟通常是 sd 開頭的，硬碟是 hd，光碟是 cdrom)&lt;br /&gt;mount -t auto /dev/sdb1 /mnt/usb&lt;br /&gt;&lt;br /&gt;查看系統開機資訊&lt;br /&gt;dmesg&lt;br /&gt;dmesg | more ：查詢開機資訊&lt;br /&gt;&lt;br /&gt;什麼是 yum&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; yum 的全名是： Yellow dog Updater, Modified yum&lt;br /&gt;是一個自動更新/移除 rpm 套件的程式。&lt;br /&gt;由於 CentOS 也是源自 redhat 系統，所以他目前也是以 yum 作套件控管。&lt;br /&gt;它會自動計算相依性，判斷哪些應該安裝，哪些則不必。&lt;br /&gt;和 yum 相同性質的還有 apt，不過 yum 比 apt 還要優秀好用。&lt;br /&gt;Client 端 yum 設定&lt;br /&gt;先透過 rpm 查詢是否安裝了 yum&lt;br /&gt;yum&lt;br /&gt;如果沒有，請線上下載 rpm 來安裝暨大 ftp 下載&lt;br /&gt;預設 gpgcheck=1 所以必須將 GPG KEY 安裝完成，http://mirror.centos.org/centos/ 下載所需要的 key 檔&lt;br /&gt;或是在本站下載 RPM-GPG-KEY-centos4&lt;br /&gt;
或是在暨大 ftp 站下載 RPM-GPG-KEY-centos4&lt;br /&gt;下載完後安裝請用 &quot;rpm --import &amp;lt;KEY_FILE_NAME&amp;gt;&quot; 指令來匯入&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 之後便可以直接作更新&lt;br /&gt;如果覺得麻煩的話，其實在下面的設定檔，可以直接加上 gpg 的下載網址即可!!&lt;br /&gt;在 CentOS4.3 預設已經直接加上： gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4&lt;br /&gt;&lt;br /&gt;在 CentOS 中修改 yum 的 url 和 FC4 類似，需要在 repos 的目錄下修改。&lt;br /&gt;cd /etc/yum.repos.d/&lt;br /&gt;修改 nano CentOS-Base.repo 分別將 [base]、[update] 的 baseurl 改到國內&lt;br /&gt;baseurl=http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/os/$basearch/&lt;br /&gt;baseurl=http://ftp.ncnu.edu.tw/Linux/CentOS/$releasever/updates/$basearch/&lt;br /&gt;另外 [addons] 中的網址表示 CentOS 還在測試中的 rpm 尚未正式 released&lt;br /&gt;[extras] 中的網址表示 CentOS 額外可能可以用的 rpm&lt;br /&gt;[centosplus] 中的網址表示 CentOS 額外的 rpm 具有特別的功能&lt;br /&gt;[contrib] 中的網址表示 CentOS 一些使用者提供的 rpm&lt;br /&gt;&lt;br /&gt;義守大學的 mirror 站亦可作 yum&lt;br /&gt;baseurl=http://ftp.isu.edu.tw/pub/Linux/CentOS/$releasever/os/$basearch/&lt;br /&gt;baseurl=http://ftp.isu.edu.tw/pub/Linux/CentOS/$releasever/updates/$basearch/&lt;br /&gt;&lt;br /&gt;靜宜大學的 mirror 站亦可作 yum&lt;br /&gt;baseurl=http://ftp.cs.pu.edu.tw/Linux/CentOS/$releasever/os/$basearch/&lt;br /&gt;baseurl=http://ftp.cs.pu.edu.tw/Linux/CentOS/$releasever/updates/$basearch/&lt;br /&gt;&lt;br /&gt;台南縣網的 mirror 站亦可作 yum&lt;br /&gt;baseurl=http://ftp2.tnc.edu.tw/pub1/centos/$releasever/os/$basearch/&lt;br /&gt;baseurl=http://ftp2.tnc.edu.tw/pub1/centos/$releasever/updates/$basearch/&lt;br /&gt;&lt;br /&gt;手動執行&lt;br /&gt;yum install * (安裝某個套件)&lt;br /&gt;yum update * (更新某個套件)&lt;br /&gt;yum update；yum clean package (更新所有套件，並於安裝後刪除套件)&lt;br /&gt;&lt;br /&gt;yum中沒有的套件如何尋找&lt;br /&gt;http://rpmfind.net/linux/RPM/&lt;br /&gt;但是此處 rpm 沒有針對 CentOS 來收集其 rpm，如果需要的話可以用 el4 的版本來試試，&lt;br /&gt;因但是建議還是以 CentOS community 提供較妥當，為選用 CentOS 最主要的訴求就是穩定!!&lt;br /&gt;另一個好用搜尋引擎 http://www.google.com.tw&lt;br /&gt;&lt;br /&gt;&lt;b&gt;三、修改系統環境：&lt;/b&gt;&lt;br /&gt;修改語系設定檔 /etc/sysconfig/i18n&lt;br /&gt;原本為：&lt;br /&gt;LANG=&quot;zh_TW.UTF-8&quot;&lt;br /&gt;SYSFONT=&quot;latarcyrheb-sun16&quot;&lt;br /&gt;SUPPORTED=&quot;zh_TW.UTF-8:zh_TW:zh&quot;&lt;br /&gt;&lt;br /&gt;修改為：&lt;br /&gt;LANG=&quot;zh_TW.Big5&quot;&lt;br /&gt;SYSFONT=&quot;latarcyrheb-sun16&quot;&lt;br /&gt;SUPPORTED=&quot;zh_TW.Big5:zh_TW:zh&quot;&lt;br /&gt;修改完後必須重新開機，設定才能生效!!&lt;br /&gt;&lt;br /&gt;系統服務開機設定位置 /etc/rc.d/init.d 之中&lt;br /&gt;針對某項服務，如果啟動或關閉 (例如 httpd)&lt;br /&gt;service httpd start|stop|restart&lt;br /&gt;/etc/rc.d/init.d httpd start|stop|restart&lt;br /&gt;這樣就可以在執行時，處理各項系統的服務的狀態!!&lt;br /&gt;&lt;br /&gt;如果希望一開機就啟動或關閉 (例如 httpd)&lt;br /&gt;首先就必須了解開機時有不同指令層級，如 level 1|2|3|4|5&lt;br /&gt;利用 chkconfig --list httpd (查看 httpd 各層級開機啟動狀態)&lt;br /&gt;chkconfig&lt;br /&gt;利用 chkconfig --level 3 httpd on (設定 httpd 在 level 3 中開機要啟動)&lt;br /&gt;這樣就可以在執行時，處理各項系統的服務的狀態!!&lt;br /&gt;&lt;br /&gt;另一個更容易的方式，透過 webmin 設定&lt;br /&gt;WEBMIN&lt;br /&gt;&lt;br /&gt;&lt;b&gt;四、視窗化操作介面X Windows&lt;/b&gt;&lt;br /&gt;執行層級 (Run level) 為 5 者直接為視窗介面&lt;br /&gt;設定開機時系統執行的設定，CentOS 4.3 預設為 5，一登入就執行 X Windows&lt;br /&gt;修改系統開機層級設定檔 /etc/inittab 修改完後存檔，重開機後就會新的設定層級開機&lt;br /&gt;比較簡單的方式，用指令修改 /sbin/init 1|2|3|4|5&lt;br /&gt;ip&lt;br /&gt;如果是文字模式時者，可以用 startx 來執行 X Windows&lt;br /&gt;ip&lt;br /&gt;登入後的畫面&lt;br /&gt;ip&lt;br /&gt;&lt;br /&gt;&lt;b&gt;五、忘記 root 密碼、系統開機有問題，無法登入時&lt;/b&gt;&lt;br /&gt;如同 RH 系統，通常將 LILO 改為用 Grub 做為開機管理程式，&lt;br /&gt;要進入單人維護模式就比較麻煩一些。在開機的過程當中，會有讀秒的時刻，&lt;br /&gt;此時請按下任意按鍵，就會進入選單畫面。&lt;br /&gt;boot&lt;br /&gt;這個時候只要選擇相對的核心檔案，並且按下「e」，就可以進入編輯畫面了。&lt;br /&gt;boot&lt;br /&gt;此時，你看到的畫面有點像：&lt;br /&gt;root (hd0,0)&lt;br /&gt;kernel /vmlinuz-2.6.9.34 EL root=/ 此時，請將游標移動到 kernel 那一行，再按一次「e」進入 kernel 該行的編輯畫面中，&lt;br /&gt;然後在出現的畫面當中，最後方輸入 single ：&lt;br /&gt;boot&lt;br /&gt;root (hd0,0)&lt;br /&gt;kernel /vmlinuz-2.6.9.34 EL root=/ single&lt;br /&gt;再按下「Enter」確定之後，按下 b 就可以 boot 看看啦。&lt;br /&gt;boot&lt;br /&gt;在使用者使用 GRUB 開機進入單一使用者模式後，並取得 # 提示符號，&lt;br /&gt;boot&lt;br /&gt;使用者需要輸入 passwd root，然後使用者便可以輸入新的 root 密碼。&lt;br /&gt;&lt;br /&gt;如果是系統發生有問題時，可以作磁碟檢查&lt;br /&gt;fsck -y&lt;br /&gt;完成後後，重開機 shutdown -r now，重新啟動。&lt;br /&gt;&lt;br /&gt;&lt;b&gt;六、安裝完成無法提供遠端網路連線&lt;/b&gt;&lt;br /&gt;請先確認 SELINUX 是否關閉&lt;br /&gt;設定檔路徑 /etc/selinux/config 中 SELINUX=enabled(enforced) 改為 disabled&lt;br /&gt;修改完後需要重新開機!!&lt;br /&gt;&lt;br /&gt;如果仍然不行，請確認 iptables 的防火牆是否設定了部分規則&lt;br /&gt;設定檔路徑 /etc/sysconfig/iptables&lt;br /&gt;查詢 iptables 的規則的指命 iptables -L&lt;br /&gt;暫時先停用 iptables 的規則的指命 iptables -F&lt;br /&gt;&lt;br /&gt;&lt;b&gt;七、應用程式安裝及管理&lt;/b&gt;&lt;br /&gt;rpm管理系統程式套件&lt;br /&gt;rpm (Redhat Package Manager)&lt;br /&gt;rpm -e *.rpm：移除某個套件&lt;br /&gt;rpm -q *.rpm：查詢某個套件&lt;br /&gt;rpm -qi *.rpm：查詢某個套件完整安裝資訊&lt;br /&gt;rpm -ivh *.rpm：安裝新的套件&lt;br /&gt;rpm -ivh --replacepkgs *.rpm：安裝已經裝的套件&lt;br /&gt;rpm -Uvh *.rpm：昇級新版本的套件&lt;br /&gt;rpm -Fvh *.rpm：更新已經安裝過的套件，只有裝過的才會更新&lt;br /&gt;&lt;br /&gt;x window 下 rpm 操作&lt;br /&gt;直接將要安裝套件用滑鼠左鍵按兩下，會出現執行訊息&lt;br /&gt;rpm&lt;br /&gt;告知此套件相關資訊&lt;br /&gt;rpm&lt;br /&gt;確定後就直接安裝，安裝完成後就直接關閉視窗&lt;br /&gt;rpm</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/2034110745006633238/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/linux.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/2034110745006633238'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/2034110745006633238'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/linux.html' title='Linux 基本使用說明'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-6186497328293201534</id><published>2012-03-08T08:00:00.003+08:00</published><updated>2012-03-08T08:00:39.337+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="iPad"/><title type='text'>新iPad問世 16日開賣</title><content type='html'>&lt;br /&gt;
蘋果公司 (Apple) 今天推出舉世矚目的最新一代 iPad 平板電腦，配備更高解析度顯示器以及速度更快的處理器，將自 3 月 16 日開始銷售，價格和原來一樣。&lt;br /&gt;&lt;br /&gt;新一代 iPad 的價格由 499 美元起跳，能連上行動電話網路的機型價格介於 629 至 829 美元。而且iPad將首度能夠透過更快速的 4G 行動電話網路系統上網。&lt;br /&gt;&lt;br /&gt;蘋果公司表示，新款 iPad 的顯示器畫質將更勝客廳裡的高畫質電視，與以往機型相比，色彩飽和度更高。此外，速度將快 4 倍。&lt;br /&gt;&lt;br /&gt;主持發表會的蘋果公司執行長庫克 (Tim Cook) 說：「我們將把它提升到全新水準，並重新界定蘋果以原版 iPad 開創的類別。」&lt;br /&gt;&lt;br /&gt;蘋果公司在舊金山舉行產品發品會，對倫敦的記者現場直播，公司高層主管表示，新款 iPad 的螢幕每吋有 264 個畫素，提供行動裝置歷來最佳顯示效果&lt;br /&gt;&lt;br /&gt;蘋果公司自 2010 年 4 月推出 iPad 觸控平板電腦以來，這款最新產品是第 3 代，它的特色還包括有 500 萬畫素的相機，以及高解析度的錄影功能。&lt;br /&gt;&lt;br /&gt;蘋果也推出升級版本的蘋果電視 (Apple TV) 機上盒，可以用來將電影、電視節目和其他內容由網路串流到電視機。售價仍將維持在 99 美元。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/6186497328293201534/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/ipad-16.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/6186497328293201534'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/6186497328293201534'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/ipad-16.html' title='新iPad問世 16日開賣'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-2402360541433520962</id><published>2012-03-08T07:58:00.002+08:00</published><updated>2012-03-08T07:58:35.006+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="iPad"/><title type='text'>蘋果推出新iPad與電視機上盒</title><content type='html'>&lt;br /&gt;
蘋果公司 (Apple) 今天推出配備更高解析度顯示器的最新款 iPad 平板電腦，以及升級版本的蘋果電視 (Apple TV) 機上盒，可以用來將電影、電視節目和其他容容由網路串流到電視機。&lt;br /&gt;&lt;br /&gt;蘋果公司在舊金山舉行產品發品會，對倫敦的記者現場直播，公司高層主管表示，新款 iPad 的螢幕每吋有 264 個畫素，提供行動裝置歷來最佳顯示效果。&lt;br /&gt;&lt;br /&gt;蘋果公司自 2010 年 4 月推出 iPad 觸控平板電腦以來，這款最新產品是第 3 代，它的特色還包括有 500 萬畫素的攝影機，以及高解析度的錄影功能。&lt;br /&gt;&lt;br /&gt;至於新款蘋果電視機上盒售價仍將維持在 99 美元。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/2402360541433520962/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/ipad.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/2402360541433520962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/2402360541433520962'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/ipad.html' title='蘋果推出新iPad與電視機上盒'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-3819207606780627271</id><published>2012-03-08T07:57:00.000+08:00</published><updated>2012-03-08T07:57:11.063+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="iPad"/><title type='text'>蘋果新品 通路估5月抵台</title><content type='html'>&lt;br /&gt;
蘋果將舉行新產品記者會，iPad 3 呼之欲出。通路商表示，iPad 3 在美國推出後，預估 2 個月後就可以到台灣銷售，不過，按照往例，不能促銷或廣告，民眾只能到現場排隊買。&lt;br /&gt;&lt;br /&gt;「有樣東西，你們非看不可」是蘋果發出媒體邀請函的主題，蘋果今天舉辦新品發表會，預料推出新一代 iPad 3 平板電腦，最大特色可能是更高的螢幕解析度和畫質。&lt;br /&gt;&lt;br /&gt;iPad 3 來勢洶洶，科技部落格 All Things Digital 近日調查指出，有 7 成消費者有意購買即將亮相的蘋果最新平板電腦 iPad 3。&lt;br /&gt;&lt;br /&gt;通路商表示，以上次 iPad 2 發表的情況來說，如果蘋果在 3 月 7 日公布新機後，台灣應該排在第 3 波銷售名單中，預估最快 2 個月後就會在台灣開賣。&lt;br /&gt;&lt;br /&gt;通路商說，蘋果對產品管制相當嚴格，時間到後通知廠商進貨，不准廣告或促銷，民眾要最快擁有 iPad 3，可能還是要排隊購買。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/3819207606780627271/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/5.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/3819207606780627271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/3819207606780627271'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/5.html' title='蘋果新品 通路估5月抵台'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-3625686369050653156</id><published>2012-03-08T07:55:00.002+08:00</published><updated>2012-03-08T07:55:46.221+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="APP"/><category scheme="http://www.blogger.com/atom/ns#" term="Google"/><title type='text'>Google改店名搶市</title><content type='html'>&lt;br /&gt;
Google 線上商店今天全新開幕，裡面有數位音樂、電影、書籍和 Android 行動裝置的迷你程式 APP，進一步向蘋果 (Apple) 和亞馬遜 (Amazon.com) 等勁敵下戰帖。&lt;br /&gt;&lt;br /&gt;位在加州的網路巨擘 Google 把 Android 市場、Google 音樂和 Google 電子書店通通結合成 1 個「數位娛樂站」－ Google Play，使用者可到上面取得資料並免費儲存在網路「雲端」。&lt;br /&gt;&lt;br /&gt;Googl e數位內容負責人羅森柏格 (JamieRosenberg) 在部落格發文：「你可在網頁和 Android 手機或平板電腦找到、享受和分享最愛的音樂、電影、書籍和APP。」&lt;br /&gt;&lt;br /&gt;「Google Play 完全以雲端操作，所以所有音樂、電影、書籍和 APP 都可儲存在線上，隨時可得且再也不用煩惱弄丟或搬移這些資料。」&lt;br /&gt;&lt;br /&gt;根據羅森柏格，Google Play 用戶可免費儲存多達 2 萬首歌，上面更有數百萬首歌曲供用戶選購。&lt;br /&gt;&lt;br /&gt;同時 Google Play 上有超過 45 萬個 APP 供 Android手 機和平板用戶下載，另外也提供電影租借服務，其電子書藏量更是世界最大。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/3625686369050653156/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/google.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/3625686369050653156'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/3625686369050653156'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/google.html' title='Google改店名搶市'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-1912377773949672137</id><published>2012-03-08T07:45:00.002+08:00</published><updated>2012-03-08T07:45:59.407+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Internet"/><title type='text'>電信業廣告不實最高罰鍰 中華電信光世代挨罰500萬</title><content type='html'>&lt;br /&gt;
中華電信由於在網站刊載 HiNet 光世代 50M 方案廣告，宣稱「下載 DVD 僅 12 分鐘」等語，但實際使用速率並非如此，今 (7) 日遭公平交易委員會委員會議通過，認為廣告不實，除要求立即停止違法行為，並處新臺幣 500 萬元罰鍰，這也是電信業者廣告不實案件中罰鍰金額最高的。&lt;br /&gt;&lt;br /&gt;公平會表示，中華電信在 HiNet 光世代 50M 方案廣告中，將「50M/5M」、「50M」等頻寬用語以 DVD 下載速度來表示，包括「下載 DVD 僅 12 分鐘」、「HiNet 光世代 50M，下載 DVD 只要 12 分鐘！速度超快～」、「HiNet 光世代 50M 有多快？下載 1 部 DVD (4.7G) 10M 要花 1 個小時，50M 只要 12 分鐘……」等語。&lt;br /&gt;&lt;br /&gt;公平會指出，從廣告中來看，給人的印象應該是，申辦中華電信光世代 50M 方案，即可達到下載 DVD 資料檔案僅需 12 分鐘的速度。不過，根據公平會的主動調查發現，中華電信公司所提供的光世代網路服務，所稱的「50M」、「50M/5M」，只是指最高可提供的線路速率 (Line Rate)，並不代表用戶實際使用速率，且所提供申辦用戶實測下載資料速率僅部分可以達到「34.9~50M」、「26.59~50M」，通常是沒有辦法達到的。&lt;br /&gt;&lt;br /&gt;公平會強調，上網速度是影響消費者交易決定的重要因素，但中華電信卻在廣告中以幾近於最高線路速率的數值來假設資料傳輸速率，並因此計算出下載 DVD 檔案只要 12 分鐘的結論，這項網路廣告容易使消費者產生誤解，已違反公平交易法第 21 條第 3 項準用同條第1項規定，除要求中華電信立即停止違法行為，並處新臺幣 500 萬元罰鍰。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/1912377773949672137/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/500_08.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/1912377773949672137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/1912377773949672137'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/500_08.html' title='電信業廣告不實最高罰鍰 中華電信光世代挨罰500萬'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-8806891490282469676</id><published>2012-03-08T07:43:00.002+08:00</published><updated>2012-03-08T07:43:31.590+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Internet"/><title type='text'>中華電信50M涉廣告不實 重罰500萬</title><content type='html'>&lt;br /&gt;
中華電信在網站刊載 HiNet 光世代 50M 方案廣告，宣稱「下載 DVD 只要 12 分鐘」等語，但公平會調查，中華電信所稱「50M」是指最高可提供的線路速率，不代表用戶實際使用速率。公平會昨認定涉廣告不實，對中華電信開罰五百萬元。&lt;br /&gt;&lt;br /&gt;中華電信挨罰五百萬元，罰鍰金額也創下公平會歷來處罰電信類案件的最高罰鍰；累計中華電信迄今已有五次違反公平法遭罰紀錄。中華電信行銷處長吳明融表示，去年十月公平會對這個廣告有意見之後，相關廣告文案都已經撤掉。&lt;br /&gt;&lt;br /&gt;公平會認為，上網速度是影響消費者交易決定的重要因素，但中華電信卻在廣告中以幾近於最高線路速率的數值，來假設資料傳輸速度，並因此算出下載 DVD 檔案只要十二分鐘的結論，容易造成消費者產生誤解，涉及廣告不實，已違反公平法規定，昨宣布對中華電信開鍘五百萬元，並要求其立即停止違法行為。&lt;br /&gt;&lt;br /&gt;公平會官員說，一張容量 4.7G 的 DVD，如果用 50M 速率下載，在頻寬不變的情況下，確實只要十至十二分鐘，如果用 10M 速率下載則要花一小時；但實測結果，HiNet 光世代 50M 下載速率只達 26.59~50M 之間，下載一張 DVD 的時間，大多超過二十分鐘，和中華電信的廣告內容有差距。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/8806891490282469676/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/50m-500.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/8806891490282469676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/8806891490282469676'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/50m-500.html' title='中華電信50M涉廣告不實 重罰500萬'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-3480891695795414102</id><published>2012-03-08T07:41:00.002+08:00</published><updated>2012-03-08T07:41:56.915+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Internet"/><title type='text'>誇大50M 中華電信罰五百萬</title><content type='html'>&lt;br /&gt;
公平會今天表示，中華電信在網站上刊載 HiNet 光世代 50M 方案廣告，宣稱下載 DVD 速度快等，就服務的品質內容有引人錯誤的表示，處新台幣 500 萬元罰鍰。&lt;br /&gt;&lt;br /&gt;公平交易委員會表示，中華電信股份有限公司在網站刊載 HiNet 光世代 50M 方案廣告，宣稱下載 DVD (約 4.7G) 只要花 12 分鐘，10M 要花 1 個小時。&lt;br /&gt;&lt;br /&gt;但是根據公平會調查，中華電信所提供光世代網路服務，所稱 50M 僅指涉最高可提供的線路速率 (Line Rate)，不代表用戶實際使用速率，且所提供申辦用戶實測下載資料速率僅部分達到 34.9 到 50M 或 26.59 到 50M。&lt;br /&gt;&lt;br /&gt;公平會表示，上網速度是影響消費者交易決定的重要因素，中華電信卻在廣告中以幾近於最高線路速率的數值作為資料傳輸速率假設，計算出下載 DVD 檔案僅 12 分鐘的結論。&lt;br /&gt;&lt;br /&gt;公平會認為，中華電信的網路廣告就 DVD 下載速度所為宣稱，將引致消費者就其服務品質產生誤認，所以處 500 萬元罰鍰、並且自處分書送達的次日起，立即停止違法行為。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/3480891695795414102/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/50m.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/3480891695795414102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/3480891695795414102'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/50m.html' title='誇大50M 中華電信罰五百萬'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-5177500677964903616</id><published>2012-03-08T07:39:00.004+08:00</published><updated>2012-03-08T07:39:42.013+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Internet"/><title type='text'>廣告不實 中華電：已撤</title><content type='html'>&lt;br /&gt;
行政院公平交易委員會今天表示，中華電信網站刊載 50M 方案廣告違反公平交易法，處新台幣 500 萬元罰鍰。中華電信說，廣告已在去年撤下，未來會加強服務用戶。&lt;br /&gt;&lt;br /&gt;公平會說，中華電信在網站刊載 HiNet 光世代 50M 方案廣告，宣稱「下載 DVD 僅 12 分鐘」、「HiNet 光世代 50M，下載 DVD 只要 12 分鐘！速度超快」等說法，就服務品質為引人錯誤的表示，違反公平交易法規定，要求中華電信停止違法行為，並處 500 萬元罰鍰。&lt;br /&gt;&lt;br /&gt;中華電信說，當初推行 50M，有民眾詢問到底有多快，因而在網站上登廣告向民眾說明。不過，公平會認為有誤導民眾的嫌疑，中華電信已經在去年就將廣告撤下。&lt;br /&gt;&lt;br /&gt;中華電信表示，提供&amp;nbsp; 50M 光世代寬頻服務，會因牽涉網際網路、網路互連與客戶端軟硬體設備環境等因素影響傳輸速率。由於 50M 屬於高速寬頻，更需要客戶端硬體與軟體設定同步更新與調整，才能達到最佳上網速率。&lt;br /&gt;&lt;br /&gt;中華電信說，相關說法在 HiNet 首頁、光世代官網、HiNet 連線速度測試網頁與合約文件，都有刊載。&lt;br /&gt;&lt;br /&gt;中華電信說，裝設 50M 的施工過程中若測試無法達到預定速率，會請客戶改申請較低速率方案，或是客戶使用中有任何問題，中華電信會協助客戶解決問題。&lt;br /&gt;&lt;br /&gt;中華電信表示，已經推出「寬頻上網 7 日內不滿意可退租或降回原速」，新裝機與升速客戶 7 日內不滿意可免費退租，或降回原速的措施，全力服務客戶。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/5177500677964903616/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/blog-post_08.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/5177500677964903616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/5177500677964903616'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/blog-post_08.html' title='廣告不實 中華電：已撤'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-6574618166147466287</id><published>2012-03-08T07:37:00.002+08:00</published><updated>2012-03-08T07:37:40.091+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="iPad"/><title type='text'>4G「新iPad」問世！解析度升級 搭4核晶片 但變厚變重</title><content type='html'>&lt;br /&gt;
蘋果 (Apple) 周三 (7 日) 如期發表眾所矚目的新一代平板電腦產品，並未開創新名稱，僅稱為「新 iPad」(new iPad)。最大賣點是支援 4G LTE 通訊，處理器升級至 4 核心，且螢幕解析度提高。下周五 (16 日) 開賣。&lt;br /&gt;&lt;br /&gt;根據蘋果官方網站資料，新 iPad 長寬、外觀與前代 iPad 2 相同，不過厚度由 8.8 公厘增至 9.4 公厘，重量也由 601 克增至 652 克。&lt;br /&gt;&lt;br /&gt;新 iPad採用的「視網膜 (Retina)」 顯示螢幕，畫素是 iPad 2 的 4 倍達 310 萬，解析度由 1024x768 增至 2048x1536，像素密度由 132 ppi 增至 264 ppi。&lt;br /&gt;&lt;br /&gt;此外，新 iPad 處理及上網速度皆顯著提升。支援的第 4 代 (4G) LTE 通訊技術，傳輸速度比現有 3G 快 10 倍。中央處理器亦由 iPad 2 的雙核心蘋果 A5 晶片，升級至 4 核心 A5X 晶片。&lt;br /&gt;&lt;br /&gt;蘋果強調，這些升級並不影響新 iPad 電池續航力，仍維持 iPad 2 的 10 小時。&lt;br /&gt;&lt;br /&gt;這些新優勢以外，新 iPad 搭載 500 萬畫素 iSight 攝影機，並支援 1080p 的高畫質 (HD) 錄影技術；同時加入部分聲控功能 (蘋果未使用 Siri 一詞)。這些升級都與去年秋天推出的 iPhone 4S 相似。&lt;br /&gt;&lt;br /&gt;新 iPad 容量 16 GB 僅支援 Wi-Fi 版，啟售價每台 499 美元，與原有 iPad 2 相同。加上 4G 通訊功能的 16 GB 版，啟售價則為 629 美元。蘋果同時將 16 GB 版 iPad 2 售價砍至 399 美元。&lt;br /&gt;&lt;br /&gt;新 iPad 下周五將率先在美國、加拿大、英國、澳洲、法國、德國、瑞士、日本、香港、新加波等 10 國開賣；本月 23 日再在全球其他 26 個國家啟售，台灣及中國不包含在內。&lt;br /&gt;&lt;br /&gt;蘋果執行長庫克 (Tim Cook) 在今日記者會上，還發表新的 Apple TV 電視盒，每台售價 99 美元，並支援 1080p HD 顯示技術。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/6574618166147466287/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/4gipad-4.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/6574618166147466287'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/6574618166147466287'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/4gipad-4.html' title='4G「新iPad」問世！解析度升級 搭4核晶片 但變厚變重'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-127390432412951292</id><published>2012-03-08T07:36:00.000+08:00</published><updated>2012-03-08T07:36:04.356+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Internet"/><title type='text'>中華電信廣告不實 遭罰500萬元</title><content type='html'>&lt;br /&gt;
公平交易委員會今 (7) 日指出，針對中華電信於網站上刊登的「HiNet 光世代 50M，下載 DVD 只要 12 分鐘！速度超快～」等語句，判定為廣告不實，重罰中華電信 500 萬元的罰鍰。&lt;br /&gt;&lt;br /&gt;公平會認為，2011 年 5 月至 11 月初，中華電信於 HiNet 光世代 50M 方案廣告網頁上，提出「HiNet 光世代 50 M有多快？下載 1 部DVD (4.7G) 10M 要花 1 個小時，50M 只要 12 分鐘……」等文字，但根據中華電信用戶實測結果，部份用戶僅達到「34.9~50M」、「26.59~50M」的速度，甚至有一至二成的用戶低於此速度。&lt;br /&gt;&lt;br /&gt;公平會委員孫立群指出，中華電信廣告不實，誤導消費者其服務品質，已違反公平交易法第 21 條第 3 項準用同條第 1 項規定。根據其市佔率及營業額，且廣告期間 HiNet 的新訂戶約有 230 萬戶，因此通過開罰 500 萬元。同時他指出，這次是自民國 91 年開始，中華電信第五次被開罰。&lt;br /&gt;&lt;br /&gt;面對公平會的開罰，中華電信行銷處處長吳明融表示，網頁上的語言只是要讓用戶了解 50M 的速度和 10M 差多少，也經過公司的實測。他強調，網速會根據人數及環境不同而變化，無法保證一定是多少，而網頁廣告也早已下架。他還說，新訂戶欲安裝 HiNet 時，公司都會實際測試給客戶看，並提供 7 天鑑賞期，如果客戶不滿意可以更改。&lt;br /&gt;&lt;br /&gt;公平會強調，如果中華電信不滿判決，可至行政院訴願會或高等法院提出訴求。不過，吳明融表示目前還不確定中華電信接下來會採取何種行動。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/127390432412951292/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/500.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/127390432412951292'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/127390432412951292'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/500.html' title='中華電信廣告不實 遭罰500萬元'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-3895631376526294016</id><published>2012-03-08T07:32:00.000+08:00</published><updated>2012-03-08T07:32:26.113+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="iPad"/><title type='text'>好失望！新iPad沒給我們的：外觀大改、更輕薄、A6晶片</title><content type='html'>&lt;br /&gt;
塵埃落定，所有謠言回歸現實。蘋果 (Apple) 周三 (7 日) 發表眾所矚目的新一代平板電腦「新 iPad」，讓之前各種關於「iPad 3」的傳聞就此停止。&lt;br /&gt;&lt;br /&gt;但從今日終於曝光的新 iPad 規格，對照先前各種吸引人的傳言，確實有不少令人失望之處。美國科技網站《CNET》便列舉出幾項原本期待能升級的部分。&lt;br /&gt;&lt;br /&gt;1、新設計&lt;br /&gt;新 iPad 外觀與 iPad 2 大致相同，主要升級在內部功能。正如外界原本期待蘋果去年會推出全新設計的智慧手機 iPhone 5，結果只得到 iPhone 4S。&lt;br /&gt;&lt;br /&gt;2、更輕薄&lt;br /&gt;iPad 原本就有的問題是有點重。但新 iPad 不但沒比 iPad 2 輕，反而更重 51 公克。問題出在蘋果並未減輕電池重量，但在新 iPad 支援的顯示、處理及通訊技術功能大增之下，這點不容易達成。&lt;br /&gt;&lt;br /&gt;3、A6 晶片&lt;br /&gt;之前關於蘋果 A6 晶片將問世的傳言甚囂塵上，但最後新 iPad 只有升級至 A5X 處理器，儘管具 4 核心不令人失望。蘋果雖稱，A5X 晶片提供表現力是 Nvidia Tegra 3 晶片的 4 倍，但依舊不是 A6。&lt;br /&gt;&lt;br /&gt;4、7 吋「迷你 iPad」&lt;br /&gt;蘋果今日只發表一個尺寸的新 iPad，並未揭露外界謠傳將推出的小尺寸平板。眼見亞馬遜 (Amazon) 7 吋平板 Kindle Fire 在低價市場積極搶市，蘋果何時入侵新戰場，看來還有得等。&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/3895631376526294016/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/ipada6.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/3895631376526294016'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/3895631376526294016'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/ipada6.html' title='好失望！新iPad沒給我們的：外觀大改、更輕薄、A6晶片'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-7068446157976579079</id><published>2012-03-08T07:01:00.000+08:00</published><updated>2012-03-08T07:01:17.693+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Internet"/><title type='text'>網速將實測 NCC促業者誠實</title><content type='html'>&lt;br /&gt;
寬頻上網速度引發爭議，國家通訊傳播委員會 (NCC) 今天表示，將實測網路速率，若測出數據遠低於業者所宣稱，業者應降價或加速建設。&lt;br /&gt;&lt;br /&gt;行政院公平交易委員會今天指出，中華電信在網站刊載 HiNet 光世代 50M 方案廣告，宣稱下載 DVD 只要花 12 分鐘，但據公平會調查，50M 僅指最高可提供的線路速率，不代表用戶實際使用速率，導致消費者產生誤認，因而處新台幣 500 萬元罰鍰。&lt;br /&gt;&lt;br /&gt;台灣網路屢挨批速度慢、收費貴，NCC 發言人陳正倉下午受訪表示，為避免廣告不實的疑慮，NCC 除加強督促電信業者確實告知速率，也將委託公正第三機構實際測試上網速率，若結果遠低於業者所提數據，業者應降價，或加速建設以提升網路速度。&lt;br /&gt;&lt;br /&gt;陳正倉說，今年將依序針對行動上網、固網進行測速，建立客觀數據，每一年或兩年在網路上公布結果，避免消費者、業者各說各話，或認為廣告「騙很大」。&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/7068446157976579079/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/ncc.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/7068446157976579079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/7068446157976579079'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/ncc.html' title='網速將實測 NCC促業者誠實'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-1247485487552452526</id><published>2012-03-06T17:14:00.000+08:00</published><updated>2012-03-06T17:14:03.872+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WebHarvest"/><title type='text'>Web-Harvest 挖掘需要的數據</title><content type='html'>&lt;br /&gt;
首先,在官方網站下載web-harvest,目前最新版本是1.0，下載頁面分三個下載包，分別是webharvest1-ex​​e.zip，webharvest1-bin.zip，webharvest1-project.zip，他們沒實質區別，第一個是包含了全部第三方包（一起打入了同一個jar文件直接可運行），第二個做為一個中間件出現，附帶了所有獨立的第三方jar包，第三個則是源碼，當然要最大的靈活性自然選擇下載源碼了：》&lt;br /&gt;&lt;br /&gt;下載下來後再eclipse建立一個空項目，把所有解壓出來的文件夾仍進去，然後把src和config設為source folder （源碼目錄） 然後看到default包下面有個Test.java的文件，下面我們來看看這個文件：&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScraperConfiguration config = new ScraperConfiguration(&quot;c:/temp/scrapertest/dddd.xml&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Scraper scraper = new Scraper(config, &quot;c:/temp/scrapertest/&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scraper.setDebug(true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long startTime = System.currentTimeMillis();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scraper.execute();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;time elapsed: &quot; + (System.currentTimeMillis() - startTime));&lt;br /&gt;&lt;br /&gt;除去log4j的註解外，剩下的就是這幾行代碼啦，我們看到運行挖掘任務只需要3行代碼，創建config，用config和挖取到數據存儲目錄做參數創建Scraper，然後執行就OK。&lt;br /&gt;&lt;br /&gt;好了，先試試，它能不能工作，在剛才解壓出來的文件中，有一個examples文件夾下面有很多，配置文件可以先試試手，首先，看看圖片挖取的例子google_images.xml ，更改上面的兩行代碼&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScraperConfiguration config = new ScraperConfiguration(&quot;E:/workspace/webharvest/examples/google_images.xml&quot;);&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Scraper scraper = new Scraper(config, &quot; E:/workspace/webharvest/examples/&quot;);&lt;br /&gt;&lt;br /&gt;然後運行這個Test在console窗口會看到抓取過程，完成後再E:\workspace\webharvest\examples\google_images目錄下就能看到剛才抓取到的所有圖片了，抓取非常簡單，到此為止，我們看看他的配置文件，google_images.xml到底有什麼魔法。&lt;br /&gt;&lt;br /&gt;在google_images.xml中,這個配置文件中首先引用了一個functions.xml,在google_images.xml同級目錄下，我們先看看這個文件。這個文件中定義了一個function（函數）名字是download-multipage-list雖然不符合java函數定義規則，但是這裡只是一個函數名，函數return了一個循環出來的結果集，empty標記表示其中的執行結果不包含在返回結果集內，那麼主要返回的就是：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xpath expression=&quot;${itemXPath}&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var name=&quot;content&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xpath&amp;gt;&lt;br /&gt;這段了，這段代碼表示，用xpath方式(解析規則是expression表達式決定的)解析引用的content內容，做為一個行記錄（這個行記錄會被默認封裝成一個List（不是普通的list而是：org.webharvest.runtime.variables.ListVariable）；&lt;br /&gt;&lt;br /&gt;循環的主體主要實現讀取數頁（多少頁由$maxloops變量決定）的數據.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;現在看看empty內部的功能：&lt;br /&gt;&lt;br /&gt;首先&lt;br /&gt;&amp;lt;var-def name=&quot;content&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;html-to-xml&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;http url=&quot;${pageUrl}&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/html-to-xml&amp;gt;&lt;br /&gt;&amp;lt;/var-def&amp;gt;&lt;br /&gt;是定義一個content變量，內容是訪問${pageUrl}頁面內容。&lt;br /&gt;&lt;br /&gt;接著：&lt;br /&gt;&amp;lt;var-def name=&quot;nextLinkUrl&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xpath expression=&quot;${nextXPath}&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var name=&quot;content&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xpath&amp;gt;&lt;br /&gt;&amp;lt;/var-def&amp;gt;&lt;br /&gt;&lt;br /&gt;是用xpath表達式（${nextXPath}）取content變量內部的值（也就是剛才${pageUrl}頁面解析）得到下一頁的URL地址。&lt;br /&gt;&lt;br /&gt;&amp;lt;var-def name=&quot;pageUrl&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;template&amp;gt;${sys.fullUrl(pageUrl.toString(), nextLinkUrl.toString())}&amp;lt;/template&amp;gt;&lt;br /&gt;&amp;lt;/var-def&amp;gt;&lt;br /&gt;&lt;br /&gt;對pageUrl重新賦值，將下一頁賦值給pageUrl下次循環讀下一頁數據解析。&lt;br /&gt;&lt;br /&gt;好了這個函數簡單的說就是用來分頁取數據的。&lt;br /&gt;&lt;br /&gt;回到google-images.xml文件我們繼續看：&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-​​- defines search keyword and start URL --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var-def name=&quot;search&quot; overwrite=&quot;false&quot;&amp;gt;platon&amp;lt;/var-def&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var-def name=&quot;url&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xpath expression=&quot;//noscript//a/@href[1]&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;html-to-xml&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;http url=&quot;http://images.google.com/images?q=${search}&amp;amp;amp;hl=en&amp;amp;amp;btnG=Search+Images&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/html-to-xml&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xpath&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/var-def&amp;gt;&lt;br /&gt;&lt;br /&gt;很簡單，定義一個變量做搜索條件給url中，然後用html-to-xml標記把http標記訪問url的頁面html內容轉換為xml，最後用xpath一個表達式得到頁面真實的url（看來google確實比較麻煩，其他網站可以直接得到url的）。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-​​- collects all image URLs --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var-def name=&quot;imgLinks&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;call name=&quot;d​​ownload-multipage-list&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;call-param name=&quot;pageUrl&quot;&amp;gt;&amp;lt;var name=&quot;url&quot;/&amp;gt;&amp;lt;/call-param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;call-param name=&quot;nextXPath&quot;&amp;gt;//td[.=&#39;Next&#39;]/a/@href&amp;lt;/call-param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;call-param name=&quot;itemXPath&quot;&amp;gt;//img[contains(@src, &#39;images?q=tbn&#39;)]/@src&amp;lt;/call-param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;call-param name=&quot;maxloops&quot;&amp;gt;5&amp;lt;/call-param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/call&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/var-def&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; 這段的功能就是調用分頁函數，把itemXPath參數中的xpath表達式內容，限定解析的頁面內容封裝成一個list啦&lt;br /&gt;&lt;br /&gt;首先定義了4個參數，然後調用functions定義的download-multipage-list函數，最後將返回值賦給imgLinks（這就完成了圖片url的抓取工作了）。&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-​​- download images and saves them to the files --&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;loop item=&quot;link&quot; index=&quot;i&quot; filter=&quot;unique&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;list&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var name=&quot;imgLinks&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/list&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;file action=&quot;write&quot; type=&quot;binary&quot; path=&quot;google_images/${search}_${i}.gif&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;http url=&quot;${sys.fullUrl(url, link)}&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/file&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/loop&amp;gt;&lt;br /&gt;&lt;br /&gt;雖然已經完成了抓取過程，但是圖片還沒有保存在本地呢，這裡我們就要循環調用file標籤，來把url中的圖片逐一保存在本地啦。&lt;br /&gt;這裡很簡單，需要注意的就是loop循環，比較不同的是loop必須包含一個list和body，會把list逐一迭代出來，body代碼中有句sys.fullUrl函數，是用來處理抓到的相對地址修正為完整的http開頭的絕對地址，參數url是前面我們定義的，link是loop循環體變量在循環裡面定義的。&lt;br /&gt;&lt;br /&gt;看完了這個我們做個我們看到只要用xpath表達式，對任何頁面的相對位置抓取都不是問題了。&lt;br /&gt;&lt;br /&gt;Web-harvest已經解決了大部分問題，我們要做的就是寫配置文件了。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/1247485487552452526/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/web-harvest.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/1247485487552452526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/1247485487552452526'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/web-harvest.html' title='Web-Harvest 挖掘需要的數據'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-5134091922510653129</id><published>2012-03-06T16:36:00.001+08:00</published><updated>2012-03-06T16:36:31.298+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WebHarvest"/><title type='text'>Web-Harvest爬取yahoo!answers數據</title><content type='html'>&lt;br /&gt;
本文主要以web-harvest爬取yahoo！ answers的數據為例，說明在使用過程中需要注意的問題。當然，最好的使用文檔就是官方網站的user manual。&lt;br /&gt;
&lt;br /&gt;
web-harvest有三個版本，這裡用的是源碼包。要完成數據的爬取，最重要的是配置config文件。源碼包中有個Java類，Test.java，源代碼如下：&lt;br /&gt;
&lt;br /&gt;
public class Test {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; public static void main(String[] args) throws IOException {&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ScraperConfiguration config = new ScraperConfiguration(&quot;e:/temp/yahooanswer/auto racing.xml&quot;); //line a&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Scraper scraper = new Scraper(config, &quot;e:/temp/wikianswer&quot;); //line b&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scraper.setDebug(true);&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; long startTime = System.currentTimeMillis();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; scraper.execute();&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; System.out.println(&quot;time elapsed: &quot; + (System.currentTimeMillis() - startTime));&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;line a中的.xml文件即抓取配置數據，line b 為抓取後數據的存放路徑。其功能是完成yahoo！ answers分類中sports/auto racing的resolved問題中的前5頁內容，每頁20條，以如下格式寫入文件中：&lt;br /&gt;
&lt;br /&gt;
下面主要來分析一下auto racing.xml,xml文件如下：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&amp;gt;&lt;br /&gt;
&amp;lt;config charset=&quot;utf-8&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;include path=&quot;functions.xml&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var-def name=&quot;home&quot;&amp;gt;http://answers.yahoo.com&amp;lt;/var-def&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var-def name=&quot;QALinks&quot;&amp;gt; //定義變量QALinks，其值為函數download-multipage-list的返回值。&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;call name=&quot;d​​ownload-multipage-list&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;call-param name=&quot;pageUrl&quot;&amp;gt;http://answers.yahoo.com/dir/index;_ylt=AnRU11UwwAiICNV69Xv._0HzDH1G;_ylv=3?sid=396545601&amp;amp;amp;link=resolved#yan-questions&amp;lt;/call- param&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;call-param name=&quot;nextXPath&quot;&amp;gt;//li[@rel=&quot;next&quot;]/@href&amp;lt;/call-param&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;call-param name=&quot;itemXPath&quot;&amp;gt;//ul[@class=&quot;questions&quot;]//h3//a/@href&amp;lt;/call-param&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;call-param name=&quot;maxloops&quot;&amp;gt;5&amp;lt;/call-param&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/call&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/var-def&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-​​- According the link, get all questions --&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var-def name=&quot;questions&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;loop item=&quot;item&quot; index=&quot;i&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;list&amp;gt;&amp;lt;var name=&quot;QALinks&quot;/&amp;gt;&amp;lt;/list&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;html-to-xml&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;http url=&quot;${sys.fullUrl(home, item)}&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/html-to-xml&amp;gt;&amp;lt;script&amp;gt;&amp;lt;![CDATA[print(&quot;item&quot;+i+&quot;:&quot;+item);]]&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/loop&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/var-def&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-​​- iterates over all collected products and extract desired data --&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;file action=&quot;write&quot; path=&quot;sports/auto racing.xml&quot; charset=&quot;utf-8&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;![CDATA[ &amp;lt;questionanswers&amp;gt; ]]&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;loop item=&quot;item&quot; index=&quot;i&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;list&amp;gt;&amp;lt;var name=&quot;questions&quot;/&amp;gt;&amp;lt;/list&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;body&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;template&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;![CDATA[&amp;lt;number&amp;gt;]]&amp;gt;&amp;lt;var name=&quot;i&quot;/&amp;gt;&amp;lt;![CDATA[&amp;lt;/number&amp;gt;]]&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/template&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xquery&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xq-param name=&quot;item&quot; type=&quot;node()&quot;&amp;gt;&amp;lt;var name=&quot;item&quot;/&amp;gt;&amp;lt;/xq-param&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xq-expression&amp;gt;&amp;lt;![CDATA[declare variable $item as node() external;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; let $subject := data($item//h1[@class=&#39;subject&#39;])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;questionanswer&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;subject&amp;gt;{normalize-space($subject)}&amp;lt;/subject&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { for $x at $count in data($item//div[@class=&quot;content&quot;])&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return if($count eq 1)&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; then &amp;lt;questioncontent&amp;gt;{$x}&amp;lt;/questioncontent&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else &amp;lt;answer&amp;gt;{$x}&amp;lt;/answer&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/questionanswer&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]]&amp;gt;&amp;lt;/xq-expression&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xquery&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/loop&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;![CDATA[ &amp;lt;/questionanswers&amp;gt; ]]&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/file&amp;gt; &lt;br /&gt;
&amp;lt;/config&amp;gt;&lt;br /&gt;
&lt;br /&gt;
functions.xml源代碼：&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&amp;gt;&lt;br /&gt;
&amp;lt;config&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;!-​​-&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Download multi-page list of items.&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @param pageUrl - URL of starting page&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @param itemXPath - XPath expression to obtain single item in the list&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @param nextXPath - XPath expression to URL for the next page&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @param maxloops - maximum number of pages downloaded&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @return list of all downloaded items&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; --&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;function name=&quot;d​​ownload-multipage-list&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;return&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;while condition=&quot;${pageUrl.toString().length() != 0}&quot; maxloops=&quot;${maxloops}&quot; index=&quot;i&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;empty&amp;gt; //函數中&amp;lt;empty&amp;gt;&amp;lt;/empty&amp;gt;中的內容表示不用返回。&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var-def name=&quot;content&quot;&amp;gt; //定義了變量content，其內容是pageUrl返回的網頁內容&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;html-to-xml&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;http url=&quot;${pageUrl}&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/html-to-xml&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/var-def&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;script&amp;gt;&amp;lt;![CDATA[ // &amp;lt;script&amp;gt;中是調試用的print，將輸入內容顯示在Java的控制台。&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; print(&quot;pageUrl:&quot;+pageUrl);&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ]]&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var-def name=&quot;nextLinkUrl&quot;&amp;gt; //定義了變量nextLinkUrl，其值是根據nextXPath從content中獲取的數據&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xpath expression=&quot;${nextXPath}&quot;&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var name=&quot;content&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xpath&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/var-def&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var-def name=&quot;pageUrl&quot;&amp;gt; //重新定義pageUrl，其值為原來的pageUrl和nextLinkUrl的連接。&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;template&amp;gt;${sys.fullUrl(pageUrl.toString(), nextLinkUrl.toString())}&amp;lt;/template&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/var-def&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/empty&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp; &lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;xpath expression=&quot;${itemXPath}&quot;&amp;gt; //要返回的值，根據itemXPath從content中獲取的數據&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;var name=&quot;content&quot;/&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/xpath&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/while&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/return&amp;gt;&lt;br /&gt;
&amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;lt;/function&amp;gt;&lt;br /&gt;
&amp;lt;/config&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;functions.xml定義了一個函數，4個輸入參數，1個輸出。 pageUrl表示起始的抓取url；nextXPath是從本頁抓取的內容中獲取下一頁url的xpath表達式，也就是如何在本頁中獲取next所對應的href；function包含一個while循環，maxloops是在其他條件滿足是最多循環次數；itemXPath是每次循環時從抓取的內容中獲取返回的列表的xpath表達式，本例中是從每頁獲得answer對應的href。最後返回的是根據itemXPath獲取的所有內容的列表。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/5134091922510653129/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/web-harvestyahooanswers.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/5134091922510653129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/5134091922510653129'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/web-harvestyahooanswers.html' title='Web-Harvest爬取yahoo!answers數據'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-1201083880394114673</id><published>2012-03-04T10:00:00.002+08:00</published><updated>2012-03-04T10:00:47.574+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="iPad"/><title type='text'>iPad 3還沒出 逾44%美民眾將購買</title><content type='html'>&lt;br /&gt;
蘋果將在 3 月 7 日正式公布一項重大消息，外界紛紛臆測與 iPad 3 的推出有關。國外行動廣告網站 InMobi 調查發現，有超過 44% 的行動網路用戶都表示將會購買 iPad 3，顯示消費者對蘋果產品的支持度仍居高不下。&lt;br /&gt;&lt;br /&gt;有超過 44% 的受訪者皆表示，如果有購買平板的意願，將會優先選擇 iPad 3，而 InMobi 的北美副總裁 Anne Frisbie 指出，透過調查報告，發現有 65% 希望購買 iPad 3 的消費者，也願意用更便宜的價格購買 iPad 或 iPad 2，她認為 iPad 3 的推出，可能不只會帶動 iPad 系列產品的買氣，更能擴大蘋果平板電腦的市佔率。&lt;br /&gt;&lt;br /&gt;雖然蘋果產品的買氣高，但美國堪蕯斯大學的傳播系教師 Doug Ward 卻在日前發表的文章中提到，學生很興奮能在課堂中獲得 iPad 來協助教學，但卻不願意在公眾場合中使用，因為認為 iPad 代表勢利、世俗的工具，而學生自認為是精英份子，不願意被貶低及被他人認為是揮霍無度的。&lt;br /&gt;&lt;br /&gt;ZDNet 科技網站的專欄作家 Charlie Osborne 表示，透過他在倫敦地鐵及巴士使用 iPad 的經驗，比起他牌平板電腦，確實獲得他人較多關注。無論是輕蔑或充滿興趣的眼光，都讓他不得不收起 iPad，以避免民眾的注目。他認為，隨著平板電腦市場的崛起，只要這些設備持續進攻各個家庭、學校及工作場合後，相信消費者就會以更平常的心態來看待 iPad。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/1201083880394114673/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/ipad-3-44.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/1201083880394114673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/1201083880394114673'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/ipad-3-44.html' title='iPad 3還沒出 逾44%美民眾將購買'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-5669110132523464318</id><published>2012-03-04T09:58:00.002+08:00</published><updated>2012-03-04T09:58:44.863+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>Password1 最新懶人電腦密碼</title><content type='html'>&lt;br /&gt;
根據網路安全公司公布的最新調查結果指出，企業界最常用的電腦密碼第一名為「Password1」，主要原因為符合要有數字、9 位數與大寫的基本密碼條件需求，另外，報告也指出，電腦駭客目前已鎖定「連鎖企業」為主要攻擊對象。&lt;br /&gt;&lt;br /&gt;網路安全公司 Trustwave 公布《全球電腦安全報告》指出，在分析 2 千多件從企業收集到的資料以及調查近期 300 起發生電腦安全疑慮後發現，駭客攻擊企業電腦最常從突破密碼防線開始，報告也指出，最受企業喜愛使用的密碼為 Password1，而與「Password」單字相關的密碼共佔了 5%，其次為「welcome」，佔了 1%。&lt;br /&gt;&lt;br /&gt;研究也指出，目前駭客選擇攻擊的對象已經鎖定連鎖企業，其中以食物及飲料業是最易受攻擊的目標，Trustwave 指出，該領域企業去年發生電腦安全事件，接受調查的件數較 2010 年增加了 42%。&lt;br /&gt;&lt;br /&gt;根據 CNN 報導，一份《2012 Data Breach Investigations Report》也指出，駭客最常用簡單以及容易猜測的密碼方式企圖突破企業電腦防線，其比例共佔 29%，而且駭客在企業內部網路潛伏蓄勢待發癱瘓電腦，時間可長達幾年之久。&lt;br /&gt;&lt;br /&gt;另外，企業網路遭駭後通常是由第三者告知，僅 16% 是內部自行發現。&lt;br /&gt;&lt;br /&gt;電腦安全專家卡明斯基則表示，「為了打擊駭客，我們必須搬出比人腦容量更大的工具，然而不管是增加生物特徵辨識，或是智慧卡與密碼製造機來增加安全性，其實同時也增加了許多複雜度。」</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/5669110132523464318/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/password1.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/5669110132523464318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/5669110132523464318'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/password1.html' title='Password1 最新懶人電腦密碼'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-1666140032503989095</id><published>2012-03-04T09:57:00.000+08:00</published><updated>2012-03-04T09:57:02.225+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="Samsung"/><title type='text'>蘋果三星互告侵犯專利 德國法院皆駁回</title><content type='html'>&lt;br /&gt;
蘋果和深圳唯冠間的 iPad 商標戰尚未結束，與三星之間的專利戰結果部份出爐。路透社報導，德國法院今 (3) 日駁回了兩件蘋果告三星，及三星投訴蘋果的案子，目前戰績各為一勝一敗。&lt;br /&gt;&lt;br /&gt;德國曼海姆地方法院今天正式宣判，包含蘋果聲稱三星侵犯其滑動上鎖技術，及三星投訴蘋果侵犯 3G UMTS 的專利技術兩案皆無效。針對此判決，三星認為法院判決證明了三星的 Galaxy 系列手機、平板電腦等產品並無抄襲蘋果的技術，同時三星也將對控訴蘋果一案持續進行上訴。&lt;br /&gt;&lt;br /&gt;蘋果從 2011 年 4 月開始，指控三星的 Galaxy 系列產品「盲目的」複製蘋果的 iPhone 及 iPad 產品。此次訟訴遭德國法院駁回，蘋果目前並沒有發表評論。&lt;br /&gt;&lt;br /&gt;除了已宣判的案件外，德國法院有 4 件蘋果與三星間的專利案件仍待解決。預計 3 月 16 日將針對蘋果指控三星抄襲其滑動解鎖的專利進行審判。&lt;br /&gt;&lt;br /&gt;蘋果日前也在德國擊敗摩托羅拉行動公司，順利駁回摩托羅拉要求禁售蘋果產品的要求。同時蘋果也與其他各家 Android 手機廠牌進行專利攻防戰。外界認為，這些專利戰將決定誰能奪下智慧型手機及平板電腦價值數十億美元的市場。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/1666140032503989095/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/blog-post_04.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/1666140032503989095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/1666140032503989095'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/blog-post_04.html' title='蘋果三星互告侵犯專利 德國法院皆駁回'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-597199911637864758</id><published>2012-03-04T08:29:00.001+08:00</published><updated>2012-03-04T09:03:51.841+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="WebHarvest"/><title type='text'>WebHarvest採集網路數據</title><content type='html'>&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;一、背景&quot;&gt;一、背景&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;一、背景&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;在当前信息空前爆炸的时代，人们不再担心信息的匮乏，而是为筛选有用的信息付出大量的代价。&quot;&gt;在當前信息空前爆炸的時代，人們不再擔心信息的匱乏，而是為篩選有用的信息付出大量的代價。&lt;/span&gt;&lt;span title=&quot;那么如何采集有用的信息呢？&quot;&gt;那麼如何採集有用的信息呢？&lt;/span&gt;&lt;span title=&quot;现在有RSS、博客等服务，但是并不能完全满足我们的需求，因为很多信息并不是以格式化的数据形式提供出来，于是聪明的工程师想出了精确搜索的方法，从而出现大量的垂直搜索网站&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;现在有RSS、博客等服务，但是并不能完全满足我们的需求，因为很多信息并不是以格式化的数据形式提供出来，于是聪明的工程师想出了精确搜索的方法，从而出现大量的垂直搜索网站&quot;&gt;現在有 RSS、博客等服務，但是並不能完全滿足我們的需求，因為很多信息並不是以格式化的數據形式提供出來，於是聰明的工程師想出了精確搜索的方法，從而出現大量的垂直搜索網站&lt;/span&gt;&lt;span title=&quot;（比如酷讯），确实火了一把。&quot;&gt; (比如酷訊)，確實火了一把。&lt;/span&gt;&lt;span title=&quot;当然我们无法得知他们是怎么实现的，但是我们也可以实现这种精确采集，开源的Web-Harvest就是类似的技术，之前曾经接触过，故写出来分享给大家。&quot;&gt;當然我們無法得知他們是怎麼實現的，但是我們也可以實現這種精確採集，開源的 Web-Harvest 就是類似的技術，之前曾經接觸過，故寫出來分享給大家。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;当然我们无法得知他们是怎么实现的，但是我们也可以实现这种精确采集，开源的Web-Harvest就是类似的技术，之前曾经接触过，故写出来分享给大家。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;二、WebHarvest简介&quot;&gt;二、WebHarvest 簡介&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;二、WebHarvest简介&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;Web-Harvest 是一个用Java 写的开源的Web 数据提取工具。&quot;&gt;Web-Harvest 是一個用 J​​ava 寫的開源的 Web 數據提取工具。&lt;/span&gt;&lt;span title=&quot;它提供了一种从所需的页面上提取有用数据的方法。&quot;&gt;它提供了一種從所需的頁面上提取有用數據的方法。&lt;/span&gt;&lt;span title=&quot;为了达到这个目的，你可能需要用到如XSLT,XQuery,和正则表达式等操作text/xml 的相关技术。&quot;&gt;為了達到這個目的，你可能需要用到如 XSLT, XQuery, 和正則表達式等操作 text/xml 的相關技術。 &lt;/span&gt;&lt;span title=&quot;Web-Harvest 主要着眼于目前仍占大多数的基于HMLT/XML 的页面内容。&quot;&gt;Web-Harvest 主要著眼於目前仍佔大多數的基於 HMLT/XML 的頁面內容。&lt;/span&gt;&lt;span title=&quot;另一方面，它也能通过写自己的Java 方法来轻易扩展其提取能力。&quot;&gt;另一方面，它也能通過寫自己的 Java 方法來輕易擴展其提取能力。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;另一方面，它也能通过写自己的Java 方法来轻易扩展其提取能力。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;Web-Harvest 的主要目的是加强现有数据提取技术的应用。&quot;&gt;Web-Harvest 的主要目的是加強現有數據提取技術的應用。&lt;/span&gt;&lt;span title=&quot;它的目标不是创造一种新方法，而是提供一种更好地使用和组合现有方法的方式。&quot;&gt;它的目標不是創造一種新方法，而是提供一種更好地使用和組合現有方法的方式。&lt;/span&gt;&lt;span title=&quot;它提供了一个处理器集用于处理数据和控制流程，每一个处理器被看作是一个函数，它拥有参数和执行后同样有结果返回。&quot;&gt;它提供了一個處理器集用於處理數據和控制流程，每一個處理器被看作是一個函數，它擁有參數和執行後同樣有結果返回。&lt;/span&gt;&lt;span title=&quot;而且处理是被组合成一个管道的形式，这样使得它们可以以链式的形式来执行，此外为了更易于数据操作和重用，Web-Harvest 还提供了变量上下方用于存储已经声明的变量。&quot;&gt;而且處理是被組合成一個管道的形式，這樣使得它們可以以鍊式的形式來執行，此外為了更易於數據操作和重用，Web-Harvest 還提供了變量上下方用於存儲已經聲明的變量。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;而且处理是被组合成一个管道的形式，这样使得它们可以以链式的形式来执行，此外为了更易于数据操作和重用，Web-Harvest 还提供了变量上下方用于存储已经声明的变量。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;上述流程的执行结果可以存储在执行中创建的文件中或者是编程时的上下文环境中使用。&quot;&gt;上述流程的執行結果可以存儲在執行中創建的文件中或者是編程時的上下文環境中使用。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;上述流程的执行结果可以存储在执行中创建的文件中或者是编程时的上下文环境中使用。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;一、配置语言&quot;&gt;一、配置語言&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;一、配置语言&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;每个提取过程都被定义在了一个或多个基于XML 的配置文件中，而且被描述为特定的或是结构化的XML 元素中。&quot;&gt;每個提取過程都被定義在了一個或多個基於 XML 的配置文件中，而且被描述為特定的或是結構化的 XML 元素中。&lt;/span&gt;&lt;span title=&quot;为了更好地说明，下面列举了一个配置文件来进行说明：&quot;&gt;為了更好地說明，下面列舉了一個配置文件來進行說明：&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;为了更好地说明，下面列举了一个配置文件来进行说明：&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;&amp;lt;config charset=&amp;quot;gbk&amp;quot;&amp;gt;&quot;&gt;&amp;lt;config charset=&quot;gbk&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;!– 页面爬取开始,按照关键词：&amp;quot;玩具&amp;quot;来搜索–&amp;gt;&quot;&gt;&amp;lt;!– 頁面爬取開始,按照關鍵詞：&quot;玩具&quot;來搜索–&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;var-def name=&amp;quot;start&amp;quot; &amp;gt;&quot;&gt;&amp;lt;var-def name=&quot;start&quot; &amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;html-to-xml&amp;gt;&quot;&gt;&amp;lt;html-to-xml&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;http url=&amp;quot;http://www.baidu.com/s?wd=玩具&amp;quot;/&amp;gt;&quot;&gt;&amp;lt;http url=&quot;http://www.baidu.com/s?wd=玩具&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/html-to-xml&amp;gt;&quot;&gt;&amp;lt;/html-to-xml&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/var-def&amp;gt;&quot;&gt;&amp;lt;/var-def&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;!– 获取竞价排名的企业网站列表–&amp;gt;&quot;&gt;&amp;lt;!– 獲取競價排名的企業網站列表–&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;var-def name=&amp;quot;urlList&amp;quot; &amp;gt;&quot;&gt;&amp;lt;var-def name=&quot;urlList&quot; &amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;xpath expression=&amp;quot;//div[@class=&#39;r&#39;]&amp;quot;&amp;gt;&quot;&gt;&amp;lt;xpath expression=&quot;//div[@class=&#39;r&#39;]&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;var name=&amp;quot;start&amp;quot;/&amp;gt;&quot;&gt;&amp;lt;var name=&quot;start&quot;/&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/xpath&amp;gt;&quot;&gt;&amp;lt;/xpath&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/var-def&amp;gt;&quot;&gt;&amp;lt;/var-def&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;!– 循环urlList ，并把结果写入到XML文件中–&amp;gt;&quot;&gt;&amp;lt;!– 循環urlList ，並把結果寫入到XML文件中–&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;file action=&amp;quot;write&amp;quot; path=&amp;quot;baidu/catalog.xml&amp;quot; charset=&amp;quot;utf-8″&amp;gt;&quot;&gt;&amp;lt;file action=&quot;write&quot; path=&quot;baidu/catalog.xml&quot; charset=&quot;utf-8″&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;![CDATA[ &amp;lt;catalog&amp;gt; ]]&amp;gt;&quot;&gt;&amp;lt;![CDATA[ &amp;lt;catalog&amp;gt; ]]&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;loop item=&amp;quot;item&amp;quot; index=&amp;quot;i&amp;quot;&amp;gt;&quot;&gt;&amp;lt;loop item=&quot;item&quot; index=&quot;i&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;list&amp;gt;&amp;lt;var name=&amp;quot;urlList&amp;quot;/&amp;gt;&amp;lt;/list&amp;gt;&quot;&gt;&amp;lt;list&amp;gt;&amp;lt;var name=&quot;urlList&quot;/&amp;gt;&amp;lt;/list&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;body&amp;gt;&quot;&gt;&amp;lt;body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;xquery&amp;gt;&quot;&gt;&amp;lt;xquery&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;xq-param name=&amp;quot;item&amp;quot; type=&amp;quot;node()&amp;quot;&amp;gt;&amp;lt;var name=&amp;quot;item&amp;quot;/&amp;gt;&amp;lt;/xq-param&amp;gt;&quot;&gt;&amp;lt;xq-param name=&quot;item&quot; type=&quot;node()&quot;&amp;gt;&amp;lt;var name=&quot;item&quot;/&amp;gt;&amp;lt;/xq-param&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;xq-expression&amp;gt;&amp;lt;![CDATA[&quot;&gt;&amp;lt;xq-expression&amp;gt;&amp;lt;![CDATA[&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;declare variable $item as node() external;&quot;&gt;declare variable $item as node() external;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;let $name := data($item//span/font[1]/text()[1])&quot;&gt;let $name := data($item//span/font[1]/text()[1])&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;let $url := data($item//span/font[2]/text())&quot;&gt;let $url := data($item//span/font[2]/text())&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;return&quot;&gt;return&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;website&amp;gt;&quot;&gt;&amp;lt;website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;name&amp;gt;{normalize-space($name)}&amp;lt;/name&amp;gt;&quot;&gt;&amp;lt;name&amp;gt;{normalize-space($name)}&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;url&amp;gt;{normalize-space($url)}&amp;lt;/url&amp;gt;&quot;&gt;&amp;lt;url&amp;gt;{normalize-space($url)}&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/website&amp;gt;&quot;&gt;&amp;lt;/website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;]]&amp;gt;&amp;lt;/xq-expression&amp;gt;&quot;&gt;]]&amp;gt;&amp;lt;/xq-expression&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/xquery&amp;gt;&quot;&gt;&amp;lt;/xquery&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/body&amp;gt;&quot;&gt;&amp;lt;/body&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/loop&amp;gt;&quot;&gt;&amp;lt;/loop&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;![CDATA[ &amp;lt;/catalog&amp;gt; ]]&amp;gt;&quot;&gt;&amp;lt;![CDATA[ &amp;lt;/catalog&amp;gt; ]]&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/file&amp;gt;&quot;&gt;&amp;lt;/file&amp;gt;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/config&amp;gt;&quot;&gt;&amp;lt;/config&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;&amp;lt;/config&amp;gt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;上述的配置文件包含了三段。&quot;&gt;上述的配置文件包含了三段。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;上述的配置文件包含了三段。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;第一段的执行步骤：&quot;&gt;第一段的執行步驟：&lt;/span&gt;&lt;span title=&quot;1. 下载http://www.baidu.com/s?wd=玩具里面的内容；&quot;&gt;1. 下載 http://www.baidu.com/s?wd=玩具 裡面的內容；&lt;/span&gt;&lt;span title=&quot;2. 清除下载内容里面的HTML 以产生XHTML;&quot;&gt;2. 清除下載內容裡面的 HTML 以產生 XHTML;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;2. 清除下载内容里面的HTML 以产生XHTML;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;第二段的执行步骤：&quot;&gt;第二段的執行步驟：&lt;/span&gt;&lt;span title=&quot;1. 用XPath 表达式从所给的URL 里面提取搜索结果；&quot;&gt;1. 用 XPath 表達式從所給的 URL 裡面提取搜索結果；&lt;/span&gt;&lt;span title=&quot;2. 用一个新的变量&amp;quot;urlList&amp;quot;来保存上面的搜索结果；&quot;&gt;2. 用一個新的變量 &quot;urlList&quot; 來保存上面的搜索結果；&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;2. 用一个新的变量&amp;quot;urlList&amp;quot;来保存上面的搜索结果；&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;第三段是利用上一段的搜索结果来提取相应的信息：&quot;&gt;第三段是利用上一段的搜索結果來提取相應的信息：&lt;/span&gt;&lt;span title=&quot;1. 循环里面迭代每一个item；&quot;&gt;1. 循環裡面迭代每一個 item；&lt;/span&gt;&lt;span title=&quot;2. 获取每个item的name和url；&quot;&gt;2. 獲取每個 item 的 name 和 url；&lt;/span&gt;&lt;span title=&quot;3. 将其保存在文件系统里；&quot;&gt;3. 將其保存在文件系統裡；&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;3. 将其保存在文件系统里；&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;有了配置文件（把该配置文件保存为:baidu.xml），我们再往前一步，写几行代码：&quot;&gt;有了配置文件 (把該配置文件保存為&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;让我们执行一下，看看结果：&quot;&gt;：&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;有了配置文件（把该配置文件保存为:baidu.xml），我们再往前一步，写几行代码：&quot;&gt;baidu.xml)，我們再往前一步，寫幾行代碼：&lt;/span&gt;&lt;span title=&quot;import java.io.IOException;&quot;&gt;import java.io.IOException;&lt;/span&gt;&lt;span title=&quot;import org.webharvest.definition.ScraperConfiguration;&quot;&gt;import org.webharvest.definition.ScraperConfiguration;&lt;/span&gt;&lt;span title=&quot;import org.webharvest.runtime.Scraper;&quot;&gt;import org.webharvest.runtime.Scraper;&lt;/span&gt;&lt;span title=&quot;public class Test {&quot;&gt;public class Test {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;public static void main(String[] args) throws IOException {&quot;&gt;public static void main(String[] args) throws IOException {&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;ScraperConfiguration config = new ScraperConfiguration(&amp;quot;c:/baidu.xml&amp;quot;);&quot;&gt;ScraperConfiguration config = new ScraperConfiguration(&quot;c:/baidu.xml&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;Scraper scraper = new Scraper(config, &amp;quot;c:/tmp/&amp;quot;);&quot;&gt;Scraper scraper = new Scraper(config, &quot;c:/tmp/&quot;);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;scraper.setDebug(true);&quot;&gt;scraper.setDebug(true);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;long startTime = System.currentTimeMillis();&quot;&gt;long startTime = System.currentTimeMillis();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;scraper.execute();&quot;&gt;scraper.execute();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;System.out.println(&amp;quot;time elapsed: &amp;quot; + (System.currentTimeMillis() - startTime));&quot;&gt;System.out.println(&quot;time elapsed: &quot; + (System.currentTimeMillis() - startTime));&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;}&quot;&gt;}&lt;/span&gt;&lt;span title=&quot;}&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;}&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;让我们执行一下，看看结果：&quot;&gt;讓我們執行一下，看看結果：&lt;/span&gt;&lt;span title=&quot;&amp;lt;catalog&amp;gt;&quot;&gt;&amp;lt;catalog&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;website&amp;gt;&quot;&gt;&amp;lt;website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;name&amp;gt;上海丽强 专业大型&amp;lt;/name&amp;gt;&quot;&gt;&amp;lt;name&amp;gt;上海麗強 專業大型&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;url&amp;gt;www.liqiang-toy.com&amp;lt;/url&amp;gt;&quot;&gt;&amp;lt;url&amp;gt;www.liqiang-toy.com&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/website&amp;gt;&quot;&gt;&amp;lt;/website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;website&amp;gt;&quot;&gt;&amp;lt;website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;name&amp;gt;多样型大型&amp;lt;/name&amp;gt;&quot;&gt;&amp;lt;name&amp;gt;多樣型大型&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;url&amp;gt;www.yonglangplay.com&amp;lt;/url&amp;gt;&quot;&gt;&amp;lt;url&amp;gt;www.yonglangplay.com&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/website&amp;gt;&quot;&gt;&amp;lt;/website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;website&amp;gt;&quot;&gt;&amp;lt;website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;name&amp;gt;童博士卡通&amp;lt;/name&amp;gt;&quot;&gt;&amp;lt;name&amp;gt;童博士卡通&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;url&amp;gt;www.tbs88.com&amp;lt;/url&amp;gt;&quot;&gt;&amp;lt;url&amp;gt;www.tbs88.com&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/website&amp;gt;&quot;&gt;&amp;lt;/website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;website&amp;gt;&quot;&gt;&amp;lt;website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;name&amp;gt;芝麻街&amp;lt;/name&amp;gt;&quot;&gt;&amp;lt;name&amp;gt;芝麻街&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;url&amp;gt;c49.txooo.js.cn&amp;lt;/url&amp;gt;&quot;&gt;&amp;lt;url&amp;gt;c49.txooo.js.cn&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/website&amp;gt;&quot;&gt;&amp;lt;/website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;website&amp;gt;&quot;&gt;&amp;lt;website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;name&amp;gt;童博士, 中国平价学生用品..&amp;lt;/name&amp;gt;&quot;&gt;&amp;lt;name&amp;gt;童博士, 中國平價學生用品..&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;url&amp;gt;www.cfsj8.cn&amp;lt;/url&amp;gt;&quot;&gt;&amp;lt;url&amp;gt;www.cfsj8.cn&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/website&amp;gt;&quot;&gt;&amp;lt;/website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;website&amp;gt;&quot;&gt;&amp;lt;website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;name&amp;gt;充气&amp;lt;/name&amp;gt;&quot;&gt;&amp;lt;name&amp;gt;充氣&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;url&amp;gt;www.xmcaili.com&amp;lt;/url&amp;gt;&quot;&gt;&amp;lt;url&amp;gt;www.xmcaili.com&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/website&amp;gt;&quot;&gt;&amp;lt;/website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;website&amp;gt;&quot;&gt;&amp;lt;website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;name&amp;gt;找木制&amp;lt;/name&amp;gt;&quot;&gt;&amp;lt;name&amp;gt;找木製&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;url&amp;gt;www.tengyuetoys.com&amp;lt;/url&amp;gt;&quot;&gt;&amp;lt;url&amp;gt;www.tengyuetoys.com&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/website&amp;gt;&quot;&gt;&amp;lt;/website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;website&amp;gt;&quot;&gt;&amp;lt;website&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;name&amp;gt;米多迪&amp;lt;/name&amp;gt;&quot;&gt;&amp;lt;name&amp;gt;米多迪&amp;lt;/name&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;url&amp;gt;b146.txooo.com&amp;lt;/url&amp;gt;&quot;&gt;&amp;lt;url&amp;gt;b146.txooo.com&amp;lt;/url&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/website&amp;gt;&quot;&gt;&amp;lt;/website&amp;gt;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/catalog&amp;gt;&quot;&gt;&amp;lt;/catalog&amp;gt;&lt;/span&gt;&lt;span title=&quot;是不是很酷。&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;是不是很酷。&quot;&gt;是不是很酷。&lt;/span&gt;&lt;span title=&quot;爬虫就这么简单。&quot;&gt;爬蟲就這麼簡單。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;爬虫就这么简单。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;二、深入考虑&quot;&gt;二、深入考慮&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;二、深入考虑&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;不知道大家看到上面的配置、代码和结果是否感觉很熟悉。&quot;&gt;不知道大家看到上面的配置、代碼和結果是否感覺很熟悉。&lt;/span&gt;&lt;span title=&quot;是否和Java通过Ibatis读取数据库数据的方式类似。&quot;&gt;是否和 Java 通過 Ibatis 讀取數據庫數據的方式類似。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;是否和Java通过Ibatis读取数据库数据的方式类似。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;那我们是否可以实现这样的机制呢，把整个互联网作为我们的庞大的数据库，我们随意的读取。&quot;&gt;那我們是否可以實現這樣的機制呢，把整個互聯網作為我們的龐大的數據庫，我們隨意的讀取。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;那我们是否可以实现这样的机制呢，把整个互联网作为我们的庞大的数据库，我们随意的读取。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;Web-Harvest提供了一个ScraperContext , 可以在该上下文中设置Java对象，可以通过Java对象收集相应的结果数据，（比如：设置Map,可以通过Map收集数据）&quot;&gt;Web-Harvest 提供了一個 ScraperContext&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;那我们是否可以实现这样的机制呢，把整个互联网作为我们的庞大的数据库，我们随意的读取。&quot;&gt;，&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;Web-Harvest提供了一个ScraperContext , 可以在该上下文中设置Java对象，可以通过Java对象收集相应的结果数据，（比如：设置Map,可以通过Map收集数据）&quot;&gt;可以在該上下文中設置 Java 對象，可以通過 Java 對象收集相應的結果數據，(比如：設置 Map,可以通過 Map 收集數據)&lt;/span&gt;&lt;span title=&quot;Scraper 提供了这样的方法：&quot;&gt;Scraper 提供了這樣的方法：&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;scraper.getContext().put(&amp;quot;resDataSet&amp;quot;, new ResultDataSet());&quot;&gt;scraper.getContext().put(&quot;resDataSet&quot;, new ResultDataSet());&lt;/span&gt;&lt;span title=&quot;ResultDataSet是收集数据的Java对象。&quot;&gt;ResultDataSet 是收集數據的&amp;nbsp; Java 對象。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;ResultDataSet是收集数据的Java对象。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;那么我们就可以这么做：&quot;&gt;那麼我們就可以這麼做：&lt;/span&gt;&lt;span title=&quot;a) 首先设置要访问的网页的路径&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;a) 首先设置要访问的网页的路径&quot;&gt;1. 首先設置要訪問的網頁的路徑&lt;/span&gt;&lt;span title=&quot;scraper.getContext().put(&amp;quot;startPageHref&amp;quot;, &amp;quot;http://www.baidu.com/s?cl=3&amp;amp;wd=儿童玩具&amp;quot;);&quot;&gt;scraper.getContext().put(&quot;startPageHref&quot;, &quot;http://www.baidu.com/s?cl=3&amp;amp;wd=兒童玩具&quot;);&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;scraper.getContext().put(&amp;quot;startPageHref&amp;quot;, &amp;quot;http://www.baidu.com/s?cl=3&amp;amp;wd=儿童玩具&amp;quot;);&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;b) 第二步，设置要收集返回数据的容器&quot;&gt;2. 第二步，設置要收集返回數據的容器&lt;/span&gt;&lt;span title=&quot;scraper.getContext().put(&amp;quot;resDataSet&amp;quot;, new ResultDataSet());&quot;&gt;scraper.getContext().put(&quot;resDataSet&quot;, new ResultDataSet());&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;scraper.getContext().put(&amp;quot;resDataSet&amp;quot;, new ResultDataSet());&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;c) 在配置文件中就可以这样设置数据&quot;&gt;3. 在配置文件中就可以這樣設置數據&lt;/span&gt;&lt;span title=&quot;${resDataSet.addRecord(&amp;quot;searchResult&amp;quot;,&amp;quot;totalSearchResult&amp;quot;,totalSearchResult)};&quot;&gt;${resDataSet.addRecord(&quot;searchResult&quot;,&quot;totalSearchResult&quot;,totalSearchResult)};&lt;/span&gt;&lt;span title=&quot;d) 爬取操作执行完毕后，即可返回数据：&quot;&gt;d) 爬取操作執行完畢後，即可返回數據：&lt;/span&gt;&lt;span title=&quot;ResultDataSet resultDataSet = (ResultDataSet)scraper.getContext().get(&amp;quot;resDataSet&amp;quot;);&quot;&gt;ResultDataSet resultDataSet = (ResultDataSet)scraper.getContext().get(&quot;resDataSet&quot;);&lt;/span&gt;&lt;span title=&quot;Ok，我们就可以随心所欲的使用这些数据，详细请看附件。&quot;&gt;Ok，我們就可以隨心所欲的使用這些數據，詳細請看附件。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;Ok，我们就可以随心所欲的使用这些数据，详细请看附件。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;三、分页机制处理&quot;&gt;三、分頁機制處理&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;三、分页机制处理&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;a) 来由介绍&quot;&gt;1. 來由介紹&lt;/span&gt;&lt;span title=&quot;现在的信息量很大，在展示的时候都是通过分页处理的。&quot;&gt;現在的信息量很大，在展示的時候都是通過分頁處理的。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;现在的信息量很大，在展示的时候都是通过分页处理的。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;b) 实现机制&quot;&gt;2. 實現機制&lt;/span&gt;&lt;span title=&quot;那我们怎么处理呢？&quot;&gt;那我們怎麼處理呢？&lt;/span&gt;&lt;span title=&quot;分页提取数据我们得明确几件事情&quot;&gt;分頁提取數據我們得明確幾件事情&lt;/span&gt;&lt;span title=&quot;1. 分页器的处理，比如：页码、页大小、记录数或页数。&quot;&gt;a. 分頁器的處理，比如：頁碼、頁大小、記錄數或頁數。&lt;/span&gt;&lt;span title=&quot;2. &amp;quot;下一页&amp;quot;的地址的构造&quot;&gt;b. &quot;下一頁&quot;的地址的構造&lt;/span&gt;&lt;span title=&quot;3. 每页数据的爬取&quot;&gt;c. 每頁數據的爬取&lt;/span&gt;&lt;span title=&quot;不同的网站的分页机制都不一样，我们如何处理呢？&quot;&gt;不同的網站的分頁機制都不一樣，我們如何處理呢？&lt;/span&gt;&lt;span title=&quot;当然我们不能通过硬编码的方式来处理，我们就通过Web-Harvest的配置文件来实现。&quot;&gt;當然我們不能通過硬編碼的方式來處理，我們就通過 Web-Harvest 的配置文件來實現。&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;Web-Harvest 本身的配置文件结构为：&quot;&gt;Web-Harvest 本身的配置文件結構為：&lt;/span&gt;&lt;span title=&quot;&amp;lt;config charset=&amp;quot;gbk&amp;quot;&amp;gt;&quot;&gt;&amp;lt;config charset=&quot;gbk&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span title=&quot;配置信息&quot;&gt;配置信息&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/config&amp;gt;&quot;&gt;&amp;lt;/config&amp;gt;&lt;/span&gt;&lt;span title=&quot;对这个结构进行扩展：&quot;&gt;對這個結構進行擴展：&lt;/span&gt;&lt;span title=&quot;&amp;lt;web-harvest-config&amp;gt;&quot;&gt;&amp;lt;web-harvest-config&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;!– 生成分页器配置 –&amp;gt;&quot;&gt;&amp;lt;!– 生成分頁器配置 –&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;config charset=&amp;quot;gbk&amp;quot; id=&amp;quot;pagination&amp;quot;&amp;gt;&quot;&gt;&amp;lt;config charset=&quot;gbk&quot; id=&quot;pagination&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;配置信息&quot;&gt;配置信息&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/config&amp;gt;&quot;&gt;&amp;lt;/config&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;!– 组装下一页地址 –&amp;gt;&quot;&gt;&amp;lt;!– 組裝下一頁地址 –&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;config charset=&amp;quot;gbk&amp;quot; id=&amp;quot;urlnav&amp;quot;&amp;gt;&quot;&gt;&amp;lt;config charset=&quot;gbk&quot; id=&quot;urlnav&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;配置信息&quot;&gt;配置信息&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/config&amp;gt;&quot;&gt;&amp;lt;/config&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;!– 抓取列表数据 –&amp;gt;&quot;&gt;&amp;lt;!– 抓取列表數據 –&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;config charset=&amp;quot;gbk&amp;quot; id=&amp;quot;listData&amp;quot;&amp;gt;&quot;&gt;&amp;lt;config charset=&quot;gbk&quot; id=&quot;listData&quot;&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;配置信息&quot;&gt;配置信息&lt;br /&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/config&amp;gt;&quot;&gt;&amp;lt;/config&amp;gt;&lt;/span&gt;&lt;span title=&quot;&amp;lt;/web-harvest-config&amp;gt;&quot;&gt;&amp;lt;/web-harvest-config&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;&amp;lt;/web-harvest-config&amp;gt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;我们就可以通过三个config项来处理&quot;&gt;我們就可以通過三個config項來處理&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;我们就可以通过三个config项来处理&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;第一步，通过id=&amp;quot;pagination&amp;quot; 的配置生成分页器&quot;&gt;第一步，通過 id=&quot;pagination&quot; 的配置生成分頁器&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;第一步，通过id=&amp;quot;pagination&amp;quot; 的配置生成分页器&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;第二步，通过已经生成的分页器加上id=&amp;quot;urlnav&amp;quot; 的配置构造下一页的URL&quot;&gt;第二步，通過已經生成的分頁器加上 id=&quot;urlnav&quot; 的配置構造下一頁的 URL&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;第二步，通过已经生成的分页器加上id=&amp;quot;urlnav&amp;quot; 的配置构造下一页的URL&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;第三步，通过id=&amp;quot;listData&amp;quot; 的配置提取需要的数据&quot;&gt;第三步，通過 id=&quot;listData&quot; 的配置提取需要的數據&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;第三步，通过id=&amp;quot;listData&amp;quot; 的配置提取需要的数据&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;一、Web-Harvest的优缺点&quot;&gt;一、Web-Harvest的優缺點&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;一、Web-Harvest的优缺点&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;优点：&quot;&gt;優點：&lt;/span&gt;&lt;span title=&quot;l. Web-Harvest是一个使用比较方便的抓取信息的API库，目前是1.0版本&quot;&gt;1. Web-Harvest 是一個使用比較方便的抓取信息的 API 庫，目前是 1.0 版本&lt;/span&gt;&lt;span title=&quot;2. 扩展性好，只要修改配置文件即可&quot;&gt;2. 擴展性好，只要修改配置文件即可&lt;/span&gt;&lt;span title=&quot;3. 上手较快，使用方便。&quot;&gt;3. 上手較快，使用方便。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;3. 上手较快，使用方便。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;缺点：&quot;&gt;缺點：&lt;/span&gt;&lt;span title=&quot;1. 处理过程比较多，对应的速度较慢&quot;&gt;1. 處理過程比較多，對應的速度較慢&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;1. 处理过程比较多，对应的速度较慢&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;二、其他使用过或者正在尝试的精确抓取数据的方式&quot;&gt;二、其他使用過或者正在嘗試的精確抓取數據的方式&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;二、其他使用过或者正在尝试的精确抓取数据的方式&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;a) 使用HTMLParser&quot;&gt;1. 使用 HTMLParser&lt;/span&gt;&lt;span title=&quot;HTMLParser可以分析HTML 源码中的TAG（比如Table，DIV等），还可以自己定义TAG（比如：ENET），通过查找特定的Tag，提取相应的数据。&quot;&gt;HTMLParser 可以分析 HTML 源碼中的 TAG (比如 Table，DIV 等)，還可以自己定義 TAG (比如：ENET)，通過查找特定的 Tag，提取相應的數據。&lt;/span&gt;&lt;span title=&quot;由于没有很多的中间处理过程，速度较快，缺点是有很多的硬编码，难以扩展。&quot;&gt;由於沒有很多的中間處理過程，速度較快，缺點是有很多的硬編碼，難以擴展。&lt;/span&gt;&lt;span title=&quot;或许能找出一个特定的表达式可以快速的提取数据。&quot;&gt;或許能找出一個特定的表達式可以快速的提取數據。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;或许能找出一个特定的表达式可以快速的提取数据。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;b) 使用HTMLClean&quot;&gt;2. 使用 HTMLClean&lt;/span&gt;&lt;span title=&quot;该方式还是走HTML-&amp;gt;XML的路线，首先通过HtmlClean把抓取的网页内容转化为XML格式数据，然后通过XPATH、XSL等方式对XML数据进行转化，达到收集数据的目的。&quot;&gt;該方式還是走 HTML-&amp;gt;XML 的路線，首先通過 HtmlClean 把抓取的網頁內容轉化為 XML 格式數據，然後通過 XPATH、XSL 等方式對 XML 數據進行轉化，達到收集數據的目的。 &lt;/span&gt;&lt;span title=&quot;Web-Harvest是类似的方式，但是我们可以精简化，提高抓取的效率。&quot;&gt;Web-Harvest 是類似的方式，但是我們可以精簡化，提高抓取的效率。&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;Web-Harvest是类似的方式，但是我们可以精简化，提高抓取的效率。&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;三、使用爬虫碰到的问题&quot;&gt;三、使用爬蟲碰到的問題&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;&quot; id=&quot;result_box&quot; lang=&quot;zh-TW&quot;&gt;&lt;span title=&quot;三、使用爬虫碰到的问题&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;span title=&quot;a) 网站对频繁抓取数据的爬虫进行IP限制问题&quot;&gt;1. 網站對頻繁抓取數據的爬蟲進行IP限制問題&lt;/span&gt;&lt;span title=&quot;考虑使用IP代理，但是速度难以忍受，故现在在考虑分布式的抓取数据的方式。&quot;&gt;考慮使用 IP 代理，但是速度難以忍受，故現在在考慮分佈式的抓取數據的方式。&lt;/span&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/597199911637864758/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/webharvest.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/597199911637864758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/597199911637864758'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/webharvest.html' title='WebHarvest採集網路數據'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-1020211502622138032</id><published>2012-03-03T18:18:00.000+08:00</published><updated>2012-03-03T18:18:13.331+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Apple"/><category scheme="http://www.blogger.com/atom/ns#" term="iPad"/><title type='text'>巴西iPad出租暴紅 一年成長80倍</title><content type='html'>&lt;br /&gt;
小投資賺大錢！兩名巴西年輕人以七千美元創業，短短一年內創下即使在網路時代都令人難以置信的八○○○％的成長紀錄。&lt;br /&gt;&lt;br /&gt;現年均為廿四歲的布雷爾 (Rony Breuel) 和拉莫斯 (Guto Ramos) ，去年五月集資約七千美元成立了專門讓好奇的年輕人「嚐鮮」的蘋果iPad租賃公司。這家以兩人姓氏第一個字母為名的「BR Mobile」公司 (http://brmobile.com.br) ，就以六台 iPad 和辦公桌椅，開始了僅供短期租賃的生意。&lt;br /&gt;&lt;br /&gt;由於打著每天租金僅約十一美元 (三百廿元新台幣) 和迅速、簡單為號召，使走在時代尖端卻買不起的客戶趨之若鶩上網排隊預訂。兩人又及時擴大租賃外的資訊類業務，短短十個月後的今天已經擁有二百五十台最新的 iPad 2，還有一組機動的技術顧問。&lt;br /&gt;&lt;br /&gt;讓人瞠目結舌的是該公司預計在五月營業屆滿一周年時，總營業額將達五十八萬四千美元 (一千七百一十八萬新台幣) ，為創業資金的八十三倍。&lt;br /&gt;&lt;br /&gt;據兩位新貴表示，租賃和電腦技術支援服務贏得了雀巢食品 Nestle 輝瑞製藥 Pfizer 等卅家知名廠商的青睞。這些大公司不必投入龐大資金為出差和參加會議的員工購買 iPad，更省下長期雇用電腦技術人員的費用，創造雙贏局面。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/1020211502622138032/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/ipad-80.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/1020211502622138032'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/1020211502622138032'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/ipad-80.html' title='巴西iPad出租暴紅 一年成長80倍'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-23168466537179330</id><published>2012-03-03T18:16:00.002+08:00</published><updated>2012-03-03T18:16:33.762+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Facebook"/><title type='text'>臉書IPO承銷商 新增3家</title><content type='html'>&lt;br /&gt;
彭博訪問的知情人士透露，臉書聘用德意志銀行、瑞士信貸集團和花旗集團擔任規模達 5 0億美元的首次公開募股 (IPO) 承銷商，讓目前承銷商總數達 9 家。&lt;br /&gt;&lt;br /&gt;由於此決策未對外公開，要求匿名的知情人士表示，新聘和現有的承銷商將另外給予臉書 (FacebookInc.) 逾 25 億美元信用額度。知情人士表示，幾週後此舉措將會在新監管文件中披露。&lt;br /&gt;&lt;br /&gt;德意志銀行 (Deutsche Bank AG) 、瑞士信貸集團 (Credit Suisse Group AG) 和花旗集團 (CitigroupInc.) 將加入摩根士丹利 (Morgan Stanley) 、摩根大通集團 (JPMorgan Chase &amp;amp; Co.) 、高盛集團 (Goldman Sachs Group Inc.) 、美國銀行 (Bank ofAmerica Corp.) 、巴克萊集團 (Barclays Plc) 和 Allen &amp;amp; Co. 的行列，承銷料是網路公司史上最大規模的 IPO。&lt;br /&gt;&lt;br /&gt;除了 Allen外，這些承銷商早就提供臉書 25 億美元信用額度。總部位在加州孟羅公園 (Menlo Park) 的臉書為全球最大社群網站。&lt;br /&gt;&lt;br /&gt;花旗和瑞信集團發言人拒絕置評，臉書發言人也不願評論。記者未能立即與德意志銀行發言人取得聯繫。負責統籌臉書 IPO 的摩根士丹利發言人也拒絕置評。</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/23168466537179330/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/ipo-3.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/23168466537179330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/23168466537179330'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/ipo-3.html' title='臉書IPO承銷商 新增3家'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry><entry><id>tag:blogger.com,1999:blog-7151106455804560184.post-5197377485307705555</id><published>2012-03-03T18:14:00.002+08:00</published><updated>2012-03-03T18:14:48.256+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Wireless"/><title type='text'>中華電降費率 迎戰台灣大</title><content type='html'>&lt;br /&gt;
中華電信昨 (2) 日宣布，語音資費從 183 型到 983 型月租費，享有 1.8~7 折不等月租折扣優惠，其中，183 型月租下殺至 1.8 折，mPro450 型行動上網下殺 6.4 折、月繳 321 元再送 WiFi 免費上網，搶攻學生族群及銀髮族客戶，也被視為電信龍頭啟動今年度首波行動資費價格戰的代表作。&lt;br /&gt;&lt;br /&gt;市場人士分析，中華電信啟動這波月租費價格戰，對象鎖定台灣大的名牌包專案及學生贈專案而來。&lt;br /&gt;&lt;br /&gt;兩家電信公司最近除了財測宣布後，上演電信獲利王角力賽之外，台灣大股價也在近日直逼中華電，以昨日收盤價來看，中華電收在 92.2 元，台灣大 91.1 元，雙方差距只有 1.1 元。&lt;br /&gt;&lt;br /&gt;面對台灣大積極挑戰電信獲利王，加上日前大打名牌包及學生贈兩大費率促銷方案，中華電啟動此波費率促銷戰，頗有迎戰台灣大的味道。&lt;br /&gt;&lt;br /&gt;中華電信目前擁有超過 1,000 萬行動電話用戶，中華電信副總經理陳長榮表示，這是繼去年年底的千萬用戶促銷專案之後，新一波的促銷活動，目前同業間競爭激烈，中華電也必須要有所行動。&lt;br /&gt;&lt;br /&gt;台灣大對此強調，該公司日前推出月租 99 名牌包專案及學生贈專案、提供30個月優惠期，無限上網吃到飽費率下調至 489 元，相較同業推出的吃到飽費率方案優惠。&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://3c-james.blogspot.com/feeds/5197377485307705555/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://3c-james.blogspot.com/2012/03/blog-post.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/5197377485307705555'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7151106455804560184/posts/default/5197377485307705555'/><link rel='alternate' type='text/html' href='http://3c-james.blogspot.com/2012/03/blog-post.html' title='中華電降費率 迎戰台灣大'/><author><name>James Lu</name><uri>http://www.blogger.com/profile/10332106545614160122</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total><georss:featurename>台灣台北市</georss:featurename><georss:point>25.091075 121.5598345</georss:point><georss:box>24.976033 121.401906 25.206117 121.71776299999999</georss:box></entry></feed>