1分鐘快速生成用于網(wǎng)頁內(nèi)容提取的xslt
1分鐘快速生成用于網(wǎng)頁內(nèi)容提取的xslt,具體內(nèi)容如下
1、項(xiàng)目背景
在《Python即時(shí)網(wǎng)絡(luò)爬蟲項(xiàng)目說明》一文我們說過要做一個(gè)通用的網(wǎng)絡(luò)爬蟲,而且能節(jié)省程序員大半的時(shí)間,而焦點(diǎn)問題就是提取器使用的抓取規(guī)則需要快速生成。在python使用xslt提取網(wǎng)頁數(shù)據(jù)一文,我們已經(jīng)看到這個(gè)提取規(guī)則是xslt程序,在示例程序中,直接把一長段xslt賦值給變量,但是沒有講這一段xslt是怎么來的。
網(wǎng)友必然會質(zhì)疑:這個(gè)xslt這么長,編寫不是要花很長時(shí)間?
實(shí)際情況是,這個(gè)xslt是通過GooSeeker的MS謀數(shù)臺的直觀標(biāo)注功能自動(dòng)生成的,熟練的話1分鐘就搞定了。
2、MS謀數(shù)臺能做什么
MS謀數(shù)臺有個(gè)圖形化界面,把一系列html解析工具集成在一起,包括:
- 基于直觀標(biāo)注自動(dòng)生成XSLT
- 即時(shí)測試XSLT的正確性
- 樹狀的DOM結(jié)構(gòu)展示
- 剖析某個(gè)DOM節(jié)點(diǎn)的屬性
- 為DOM節(jié)點(diǎn)生成XPath,可選擇定位到class、或者id、或者絕對定位
- 根據(jù)xpath搜索DOM節(jié)點(diǎn)
MS謀數(shù)臺界面分成三部分:DOM數(shù)窗口、內(nèi)嵌瀏覽器窗口、工作臺。在工作臺上定義xslt轉(zhuǎn)換規(guī)則。
3、用MS謀數(shù)臺生成XSLT
假設(shè)我們要抓取論壇帖子列表,下面一步步講解操作方法:
第一步,打開GooSeeker的MS謀數(shù)臺,輸入要抓取的網(wǎng)址
第二步,在MS謀數(shù)臺的瀏覽器顯示窗口里,直接選取要提取的內(nèi)容,并且起個(gè)名字,點(diǎn)擊確認(rèn)
第三步,點(diǎn)擊工作臺的“測試”按鈕,xslt就生成了,在“數(shù)據(jù)規(guī)則”窗口顯示出來
通過以上的操作,不用編程,用圖形化界面直接在頁面上標(biāo)注,1分鐘就可以生成xslt
4、怎樣使用XSLT
在python使用xslt提取網(wǎng)頁數(shù)據(jù)一文,我們把生成xslt作為一個(gè)字符串交給程序,給人感覺好像一下子回到了史前文明,前面講的那么好,最后用了很原始的拷貝。其實(shí)不然,那個(gè)只是一個(gè)例子。在《python即時(shí)網(wǎng)絡(luò)爬蟲項(xiàng)目: 內(nèi)容提取器的定義》一文已經(jīng)初見端倪了,有多種注入xslt的方式,最自動(dòng)化的方式是api,將在后續(xù)文章中詳細(xì)講解。
5、文檔修改歷史
2016-05-28:V3.0,增加第二章
2016-05-26:V2.0,增補(bǔ)文字說明
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- python使用xslt提取網(wǎng)頁數(shù)據(jù)的方法
- 使用Python下的XSLT API進(jìn)行web開發(fā)的簡單教程
- 一個(gè)用xslt樣式將xml解析為xhtml的類TransformBinder(兼容FF和IE7.0)
- 用xslt將xml解析成xhtml的代碼
- XSLT輕松入門第二章:XSLT的實(shí)例
- python提取字典key列表的方法
- Python實(shí)現(xiàn)從url中提取域名的幾種方法
- python利用正則表達(dá)式提取字符串
- python使用正則表達(dá)式提取網(wǎng)頁URL的方法
- Python進(jìn)行數(shù)據(jù)提取的方法總結(jié)
相關(guān)文章
Python多線程編程(七):使用Condition實(shí)現(xiàn)復(fù)雜同步
這篇文章主要介紹了Python多線程編程(七):使用Condition實(shí)現(xiàn)復(fù)雜同步,本文講解通過很著名的“生產(chǎn)者-消費(fèi)者”模型來來演示在Python中使用Condition實(shí)現(xiàn)復(fù)雜同步,需要的朋友可以參考下2015-04-04Django的用戶模塊與權(quán)限系統(tǒng)的示例代碼
這篇文章主要介紹了Django的用戶模塊與權(quán)限系統(tǒng)的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07像線程一樣管理進(jìn)程的Python multiprocessing庫
multiprocessing庫是基于threading API,它可以把工作劃分為多個(gè)進(jìn)程.有些情況下,multiprocessing可以作為臨時(shí)替換取代threading來利用多個(gè)CPU內(nèi)核,相應(yīng)地避免Python全局解釋器鎖所帶來的計(jì)算瓶頸.本文詳細(xì)介紹了Python multiprocessing庫,需要的朋友可以參考下2021-05-05Python3實(shí)現(xiàn)Web網(wǎng)頁圖片下載
這篇文章主要介紹了Python3通過request.urlopen實(shí)現(xiàn)Web網(wǎng)頁圖片下載,感興趣的小伙伴們可以參考一下2016-01-01