第十四章 Python即時網路爬蟲:API說明—下載內容提取器
API說明——下載gsExtractor內容提取器
1,介面名稱
下載內容提取器
2,介面說明
如果您想編寫一個網路爬蟲程序,您會發現大部分時間耗費在調測網頁內容提取規則上,不講正則表達式的語法如何怪異,即便使用XPath,您也得逐個編寫和調試。
如果要從一個網頁上提取很多欄位,逐個調試XPath將是十分耗時的。通過這個介面,你可以直接獲得一個調測好的提取器腳本程序,是標準的XSLT程序,您只需針對目標網頁的DOM運行它,就能獲得XML格式的結果,所有欄位一次性獲得。
這個XSLT提取器可以是您用MS謀數台生成的,也可以是其他人共享給您的,只要您有讀許可權,皆可下載使用。用於數據分析和數據挖掘的網路爬蟲程序中,內容提取器是影響通用性的關鍵障礙,如果這個提取器是從API獲得的,您的網路爬蟲程序就能寫成通用的框架。請參看GooSeeker的開源Python網路爬蟲項目。
3,介面規範 3.1,介面地址(URL)http://www.gooseeker.com/api/getextractorn
3.2,請求類型(contentType)
不限3.3,請求方法HTTP GET
3.4,請求參數- key 必選:Yes;類型:String;說明:申請API時分配的AppKey
- theme 必選:Yes;類型:String;說明:提取器名,就是用MS謀數台定義的規則名
- middle 必選:No;類型:String;說明:規則編號,如果相同規則名下定義了多個規則,需填寫
- bname 必選:No;類型:String;說明:整理箱名,如果規則含有多個整理箱,需填寫
注釋:請參看GooSeeker網路爬蟲術語解釋:集搜客GooSeeker專有名詞解釋 3.5,返回類型(contentType)
text/xml; charset=UTF-83.6,返回參數
HTTP消息頭中的參數,如下:- more-extractor 類型:String;說明:相同規則名下有多少個提取器。通常只在可選參數沒有填寫的時候需要關注這個參數,用以提示客戶端有多個規則和整理箱,客戶端自己決定是否要在發送請求時攜帶明確的參數
3.7,返回錯誤信息
- 消息層錯誤以HTTP 400返回,比如,URL中的參數不符合本規範
- 應用層錯誤以HTTP 200 OK返回,具體錯誤碼用XML文件放在消息體中,XML結構如下:<return> <code>具體的錯誤碼</code></return>
- 具體的code值如下:keyError:許可權驗證失敗paramError:URL中傳來的參數有誤,比如,參數名稱或值不正確empty:非錯誤狀態,而是請求的提取器是不存在的,比如,某個抓取規則並沒有創建整理箱,則返回empty
4,用法範例(python語言)
提取器名獲取參考 1分鐘快速生成用於網頁內容提取的xslt示例代碼:# -*- coding: utf-8 -*-nfrom urllib import requestnnurl = http://www.gooseeker.com/api/getextractor?key=您的key&theme=您的提取器名nnresp = request.urlopen(url)ncontent = resp.read()nif(content):n print(content)n
接下來我會對此API進行測試,將案例發布出來
5,相關文檔
1, Python即時網路爬蟲項目: 內容提取器的定義
6,集搜客GooSeeker開源代碼下載源
1, GooSeeker開源Python網路爬蟲GitHub源
7,文檔修改歷史
1,2016-06-16:V1.0
上一章 將採集結果從xml格式轉json <<<<<首頁>>>>> 下一章 Java/Javascript環境下下載內容提取器
推薦閱讀:
※怎麼樣才算是精通 Python?
※Python用作後台開發語言在國內的前景?
※Python黑帽編程 3.4 跨越VLAN
※優雅的 Python 之 Ellipsis