Category Archives: Python

自動抓取無名相簿照片程式範例

自動抓取相簿相片 為了示範WebChuan的威力,我寫了一個簡單的範例,可以下載無名小站的某個相簿裡的所有照片 範例 它會一頁接著一頁抓下去,舉個例子,例如這個相簿,只要輸入相簿第一張相片的網頁連結,它就會一頁一頁接著抓下去,然後圖片都存到相同的目錄下 包裝好的程式 為了方便沒有安裝Python和WebChuan也能使用這個簡單的小程式,我把它打包成.exe的執行檔,可以從這裡下載 自動抓取無名相簿照片程式 執行download_photos.exe再貼上相簿裡第一張相片的網址連結就可以開始下載相片 請注意,如果抓太凶可能會遇到一個錯誤 999 Unable to process request at this time 似乎是Yahoo把你抓照片當成攻擊,換個IP繼續抓應該就可以了

Posted in Python, 中文文章, 分享 | Tagged , , , | 1 Comment

抓網頁的程式庫 : WebChuan

WebChuan 花了一些時間整理我先前提到設計下所寫出來的抓網頁模組,用Python寫基於Twisted和lxml,可以輕鬆地組織抓取網頁的流程,各種常用的功能都已經有了 我把它命名為WebChuan並且釋放成在MIT License下的Open source project http://webchuan.ez2learn.com/ 有興趣可以參考看看,目前還有很多事要做,包括生成文件、撰寫文件、測試等等,但是先前提到的基本功能都已經完備 http://webchuan.ez2learn.com/wiki/Examples/GetPageTitle 這裡有一個取得網頁標題的簡單程式可以執行看看

Posted in Python, 中文文章 | Tagged , , | 1 Comment

抓取網頁程式的架構設計

截取網頁的架構設計 我們先前談到了抓取網頁用的工具,但是光有工具是不夠的,良好的設計也是必要的,這次我們就來談談設計

Posted in Python, 中文文章, 設計 | Tagged , , , | 3 Comments

VirtualBox下跑FreeBSD的網路問題和安裝Python模組心得

昨天在VirtualBox上裝了FreeBSD,但是卻遇到無法上網的問題 #ping google.com ping: cannot resolve google.com: No address associated with name 看起來是網路沒有設定好,連DNS都找不到的樣子,於是在網路上找了一找,終於找到了解決方法 ifconfig pcn0 down ifcontig pcn0 media 10baseT/UTP ifconfig pcn0 up dhclient pcn0 解決了之後終於成功地在上面執行了我在Windows下寫的程式,一開始我連什麼指令用來抓檔案都不知道,我只知道curl這樣的指令,但它好像沒有這樣的指令,後來知到有fetch可以用,就裝好了easy_install之後就很方便,接著裝了Twisted,和lxml,而lxml並不是直接用easy_install就可以用,還得先安裝並編譯libxml2和libxslt,但其實也很簡單,先fetch下來,解開壓縮,然後執行 ./configure make install 編譯要花一小段時間,但沒想到這麼順利,沒有什麼編譯錯誤跑出來,完成後再用easy_install安裝lxml就可以了 寫一個小程式來測試 然後執行 Wow! 成功了!

Posted in Python, Unix-Like, 中文文章, 問題 | Tagged , , , , , , | 4 Comments

抓取網頁的最佳語言 : Python

最初 最早我用C/C++語言慢慢寫抓網頁的用它來抓網頁真的是程式,一開始甚至打算自己寫抓取網頁的函式庫,想說當做練習,可是HTTP協定 雖然不難,可是煩,要處理的細節太多了,後來受不了,轉而使用現成的Library : cUrl,但是C/C++語言開發這類東西的效率實在太慢了,我的程式不停的修改、不停的修改,光是編譯的時間就吃掉了不知道多少,字串的處理C/C++ 沒有內建正規表示法或一些好用的字串函數之類的,處理起來也礙手礙腳,當時,我想將我寫好的函數庫寫成能讓Lua呼叫的形式,或著甚是C/C++來呼叫Lua,因為C/C++有很多細節要處理,Memory leak有的沒有的雜事,我想要的只是專注在寫抓取網頁的程式,因此用Lua包裝似乎是不錯的選擇,但是開發時間太久了,事情一直沒有變好 直到

Posted in Python, 中文文章 | Tagged , , , | 43 Comments

py2exe 找不到Module的問題

py2exe的問題 接續上一篇所提到的問題 我今天在用py2exe打包一個架構在Twisted的程式成exe時遇到了一個問題,執行產生出來的執行檔會產生這樣的錯誤 ImportError: No module named resource 同時py2exe在產生時也有這樣的說明 [‘FCNTL’, ‘OpenSSL’, ’email.Generator’, ’email.Iterators’, ’email.Utils’, ‘pkg_resources’, ‘pywintypes’, ‘resource’, ‘win32api’, ‘win32con’, ‘win32event’, ‘win32file’, ‘win32pipe’, ‘win32process’, ‘win32security’] 終於,在好心人的幫助下,我的問題得到了回答 答覆 原因似乎是py2exe在某些原因下無法找到某些需要的module,此時就需要使用參數來指示py2exe包含這些module進來,在解決完了Twisted的問題,我又遇到了lxml類似的問題,不過所幸做法差不多,只是增加參數 -p 後面的一個lxml指示py2exe引入此package如此而已 python setup.py py2exe -p win32com,lxml -i twisted.web.resource 最後使用這樣的指令,成功地產生出了可執行的exe檔

Posted in Python, 中文文章 | Tagged , , , | 2 Comments

Python2.6 釋出

剛剛開啟Python官方文件時發現,變成了2.6版,連文件的格式都使用了不同的產生程式Sphinx,漂亮了許多 到官方網站的下載一看,果然已經釋放了2.6版,看來需要找些時間來了解Python2.6版到底新增了什麼

Posted in Python, 中文文章 | Tagged | 3 Comments

替代Plone的Python CMS列表

Plone真的是怪物 當收到來自WebFaction的回信後,更令人驚訝的事實 At this point, PHP applications are not counted towards your memory usage. If you look at the memory output in the notice, you will see that it’s just Zope (Plone). 原先我一直以為超過記憶體限制是因為PHP的關係,但是他們說PHP的記憶體使用並不列入計算,我回頭去看他們寄來的記錄上的確只有Plone的記憶體使用,所以驚人的事實就是 Zope + Plone吃掉了超過 171 MB的記憶體! 我並不清楚是何種情況讓Plone吃掉這麼多記憶體,在這之前都沒有超過記憶體的情況發生,但是這樣飢餓的怪物真叫人害怕 其它選擇 … Continue reading

Posted in Python, 中文文章 | Tagged , , , , | 3 Comments