C#爬蟲系列(二)——食品安全國家標准數據檢索平台


上篇對“國家標准全文公開系統”的國標進行抓取,本篇對食品領域的標准公開系統“食品安全國家標准數據檢索平台”進行抓取。

平台地址:http://bz.cfsa.net.cn/db

一、標准列表

第一步還是去獲取標准列表,通過高級搜索,輸入空查詢條件,則查詢出全部的標准記錄。

 這時候可以看到,列表頁的URL仍然是http://bz.cfsa.net.cn/db。

不同於“國家標准全文公開系統”,“食品安全國家標准數據檢索平台”的請求多數是POST,即用戶的多數操作是POST不同參數到http://bz.cfsa.net.cn/db,服務根據POST的參數返回相應的頁面。

那么要獲取標准列表,則要POST特定參數到http://bz.cfsa.net.cn/db。POST哪些參數?可以通過查看源碼,分析JS代碼了解到。

更簡單、准確的方式是,通過瀏覽器(火狐、谷歌、IE都可)的Web調試工具查看其POST提交的參數,例如查詢全部標准的POST數據如下:

二、標准詳細信息

點擊標准名稱超鏈接,將打開標准詳細信息頁,頁面URL為http://bz.cfsa.net.cn/staticPages/002D3B53-DE13-42C1-B099-C57EC501138A.html。

可見詳細信息頁通過GET請求獲得,需要從列表頁中解析到標准的GUID,然后GET相應的頁面即可。解析GUID仍然使用正則表達式即可。

當然,該站點也可以通過POST請求獲取到標准詳細信息頁,因為其源代碼如下:

<a href="javascript:void(0);" onclick="goto('3B34B8D6-7164-4419-B308-6AF683E8B606','2')">食品安全國家標准 食品微生物學檢驗培養基和試劑的質量<font color='red'></font>求(GB 4789.28-2013)</a>

標准詳細信息的抓取,仍然通過HTML解析組件進行解析。

三、標准文件下載

下載標准PDF文件,點擊“下載”鏈接獲取文件。查看其源代碼如下:

onclick="load('588072C8-F771-4F66-9B33-3BA4AF7C4540');

可知下載PDF文件時,POST請求到該URL:http://bz.cfsa.net.cn/cfsa_aiguo。

文件的GUID值和標准的GUID值不同,但仍然可以從頁面中使用正則表達式解析出來。

至此,該站點的標准可以抓取到,相比“國家標准全文公開系統”,該站點標准爬取時,只需要修改GET請求為POST請求即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM