专栏首页马洪彪C#爬虫系列(二)——食品安全国家标准数据检索平台

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请求即可。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【C#学习笔记之一】C#中的关键字

    C#中的关键字 关键字是对编译器具有特殊意义的预定义保留标识符。它们不能在程序中用作标识符,除非它们有一个 @ 前缀。例如,@if 是有效的标识符,但 if 不...

    Angel_Kitty
  • 关于是否在C#中加入不可空引用类型的争论

    来自微软的Mads Togersen在近期所提出的一条提议,即在C#语言中加入对不可空引用类型的支持在.NET社区中引起了热烈的争论。人们对此提议的反应大相径庭...

    逸鹏
  • Birdge.NET:将C#代码转换为JavaScript

    Birdge.NET 是一个可以将C#代码转换为JavaScript的开源编译器,由 Object.NET于2015年5月推出。它允许开发者使用C#编写平台独立...

    逸鹏
  • 2015最新编程语言排行榜出炉:C#继续彪涨

    这是一个时间问题,苹果宣布从Objective-C转向Swift不久,Objective-C进入自由落体。本月Objective-C的Tiobe指数最高下跌10...

    逸鹏
  • 基于遗传算法(C#编写)的智能组卷系统优化

    最近由于项目的需要,基于.Net 4.0框架和WPF开发window的客户端(开发环境为win7 旗舰版;Visual Studio 2013),在功能实现上需...

    昱良
  • C# 实现发送手机短信

    现在很多网站都是短信发送的功能,怎么实现的呢。对于个人站长来说的话,通过使用SMS短信通API接口相对比较划算和简单。那怎么实现呢,步骤如下: 1. 从网上(h...

    逸鹏
  • GeetTest~下一代验证(附C#案例)

    基本介绍 极验验证除了在服务器端提供了广泛的语言支持外,在客户端也提供了多平台的扩展支持。 客户端主要涵盖了如下平台: pcWeb 普通台式电脑,笔记本电脑w...

    逸鹏
  • 必备 .NET - C# 异常处理

    欢迎查看首个“必备.NET”专栏。您可以在其中了解 Microsoft .NET Framework 领域的所有最新动态,无论是 C# vNext 的最新进展(...

    逸鹏
  • C# 操作 access 数据库

    随笔: (1)   命名空间             using System.Data.OleDb; (2)   连接字符串             priv...

    房上的猫
  • 用C#实现字符串相似度算法(编辑距离算法 Levenshtein Distance)

    在搞验证码识别的时候需要比较字符代码的相似度用到“编辑距离算法”,关于原理和C#实现做个记录。 据百度百科介绍: 编辑距离,又称Levenshtein距离(也叫...

    Angel_Kitty

扫码关注云+社区

领取腾讯云代金券