所幸過了一年後,神聽到我的請求,pyquery降臨了
首先由於該套件是以lxml作為底層剖析引擎,所以先到下列網址下載安裝
http://pypi.python.org/pypi/lxml/2.3.2
不過上面網址只有釋放原始碼,要自己打指令安裝
如果你的作業系統是Windows,有福了,這邊有一指安裝檔,在下列網頁內
http://www.lfd.uci.edu/~gohlke/pythonlibs/
找尋lxml-2.3.2,然後根據你的版本選擇安裝檔
安裝好了,接下來就是主菜了
pypi把套件下載下來http://pypi.python.org/pypi/pyquery
由於pyquery沒有製作一指安裝檔,所以不管哪種作業系統都要打指令。
將套件下載下來,解壓縮後,以命令列的方式進入套件的目錄,然後執行
python setup.py install
帶著禱告的心情按下Enter鍵,如果沒有出現安裝錯誤,水!
裝好了之後就要來測試一下
首先我們來試試看台灣yahoo
假設我們要抓取奇摩的<title></title>之間的值,該如何做呢?
請輸入以下的程式碼
from pyquery import PyQuery as pq
q = pq(url='http://tw.yahoo.com/')
print(q('title').text())
執行,你就會發現...
Yahoo!奇摩
怎麼會這麼簡單!!!
也許你會問,那可不可以用CSS的方式來抓呢?
假設我們要抓<a>標籤中屬於tag_fashion這個class的資料
把上面的程式碼中最後一行換成下面
print(q('a').filter('.tag_fashion').text())
各位有興趣自己試試看結果如何,ID值的道理也是一樣,把小數點換成#就可以了
不過又會有人問了:可是如果我要抓的資料位置沒辦法用ID方式指定,那該怎麼辦?
依然不難,該套件可以支援比如說我要抓第五個<p>標籤內的內容,方式如下
q('p').eq(4).text()
p.s. 用4的原因是因為python是以0開始記數,所以0是代表第1筆資料,4代表第5筆資料
一切就像做一塊小蛋糕一樣簡單
小弟今天就先寫到這,以後有緣會在介紹一些其他的應用。如果等不及,可以先看官方的說明文件http://packages.python.org/pyquery/index.html 。希望小弟的文章有幫到大家,再會~
謝謝,受教了!
回覆刪除很有用。
您好,謝謝鼓勵,希望以後有機會可以交流交流~
刪除剛好需要用到 被您拯救了呢
回覆刪除謝謝 有機會可以一起討論進階的用法~
刪除作者已經移除這則留言。
刪除