上篇对“国家标准全文公开系统”的国标进行抓取,本篇对食品领域的标准公开系统“食品安全国家标准数据检索平台”进行抓取。

平台地址: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请求即可。

Normal
0

7.8 磅
0
2

false
false
false

EN-US
ZH-CN
X-NONE

/* Style Definitions */
table.MsoNormalTable
{mso-style-name:普通表格;
mso-tstyle-rowband-size:0;
mso-tstyle-colband-size:0;
mso-style-noshow:yes;
mso-style-priority:99;
mso-style-parent:"";
mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
mso-para-margin:0cm;
mso-para-margin-bottom:.0001pt;
mso-pagination:widow-orphan;
font-size:10.5pt;
mso-bidi-font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ascii-font-family:Calibri;
mso-ascii-theme-font:minor-latin;
mso-hansi-font-family:Calibri;
mso-hansi-theme-font:minor-latin;
mso-font-kerning:1.0pt;}

C#爬虫系列(二)——食品安全国家标准数据检索平台的更多相关文章

  1. 爬虫系列(二) Chrome抓包分析

    在这篇文章中,我们将尝试使用直观的网页分析工具(Chrome 开发者工具)对网页进行抓包分析,更加深入的了解网络爬虫的本质与内涵 1.测试环境 浏览器:Chrome 浏览器 浏览器版本:67.0.33 ...

  2. Java爬虫系列二:使用HttpClient抓取页面HTML

    爬虫要想爬取需要的信息,首先第一步就要抓取到页面html内容,然后对html进行分析,获取想要的内容.上一篇随笔<Java爬虫系列一:写在开始前>中提到了HttpClient可以抓取页面内 ...

  3. C#爬虫系列(一)——国家标准全文公开系统

    网上有很多Python爬虫的帖子,不排除很多培训班借着AI的概念教Python,然后爬网页自然是其中的一个大章节,毕竟做算法分析没有大量的数据怎么成. C#相比Python可能笨重了些,但实现简单爬虫 ...

  4. 爬虫系列二(数据清洗--->正则表达式)

    一 正则常识 模式 描述 \w 匹配字母数字及下划线 \W 匹配非字母数字及下划线 \s 匹配任意空白字符,等价于 [\t\n\r\f]. \S 匹配任意非空字符 \d 匹配任意数字,等价于 [0-9 ...

  5. 爬虫系列二(数据清洗--->xpath解析数据)

    一 xpath介绍 XPath 是一门在 XML 文档中查找信息的语言.XPath 用于在 XML 文档中通过元素和属性进行导航. XPath 使用路径表达式在 XML 文档中进行导航 XPath 包 ...

  6. 爬虫系列二(数据清洗--->bs4解析数据)

    一 BeautifulSoup解析 1 环境安装 - 需要将pip源设置为国内源,阿里源.豆瓣源.网易源等 - windows (1)打开文件资源管理器(文件夹地址栏中) (2)地址栏上面输入 %ap ...

  7. 爬虫系列(十二) selenium的基本使用

    一.selenium 简介 随着网络技术的发展,目前大部分网站都采用动态加载技术,常见的有 JavaScript 动态渲染和 Ajax 动态加载 对于爬取这些网站,一般有两种思路: 分析 Ajax 请 ...

  8. Java爬虫系列之实战:爬取酷狗音乐网 TOP500 的歌曲(附源码)

    在前面分享的两篇随笔中分别介绍了HttpClient和Jsoup以及简单的代码案例: Java爬虫系列二:使用HttpClient抓取页面HTML Java爬虫系列三:使用Jsoup解析HTML 今天 ...

  9. Java爬虫系列三:使用Jsoup解析HTML

    在上一篇随笔<Java爬虫系列二:使用HttpClient抓取页面HTML>中介绍了怎么使用HttpClient进行爬虫的第一步--抓取页面html,今天接着来看下爬虫的第二步--解析抓取 ...

随机推荐

  1. 12.21-Android WebService(基于KSOAP2)

    KSOAP2_连接WebService *****我是小知识点******** Ksoap2提供了对soap序列化更好的支持.Ksoap2是一个轻量级的J2ME平台的实现框架,提供了soap协议消息的 ...

  2. 【机器学习实战】第 10 章 K-Means(K-均值)聚类算法

    第 10 章 K-Means(K-均值)聚类算法 K-Means 算法 聚类是一种无监督的学习, 它将相似的对象归到一个簇中, 将不相似对象归到不同簇中.相似这一概念取决于所选择的相似度计算方法.K- ...

  3. 编程&blog处女篇-用C#求100以内的质数

    using System;namespace Loops{ class Program { static void Main(string[] args) { /*局部变量定义*/ int i, j; ...

  4. CSS基础:基础和语法

    **CSS语法** CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明.选择器通常是您需要改变样式的 HTML 元素.```selector {declaration1; declarati ...

  5. javascript高性能写法

    看到一篇不错的博文,如果想写出比较高性能的代码,可参看这个链接http://developer.51cto.com/art/200906/131335.htm

  6. 最长上升子序列(NlogN)总结

    最长上升子序列总结 最开始的知道最长上升子序列的时候,简单DP的时候,但是后来遇到很多最长上升子序列的问题就没法用DP来解决,时间复杂度和空间复杂度都不允许.

  7. java线程池ThreadPool

    package com.java.concurrent; import java.util.concurrent.ExecutorService; import java.util.concurren ...

  8. heapster源码分析——kubelet的api调用分析

    一.heapster简介 什么是Heapster? Heapster是容器集群监控和性能分析工具,天然的支持Kubernetes和CoreOS.Kubernetes有个出名的监控agent---cAd ...

  9. Asp.Net MVC 使用 Ajax

    Asp.Net MVC 使用 Ajax Ajax 简单来说Ajax是一个无需重新加载整个网页的情况下,可以更新局部页面或数据的技术(异步的发送接收数据,不会干扰当前页面). Ajax工作原理 Ajax ...

  10. Java笔试题解答

    1. 下面哪些是Thread类的方法() A start()       B run()       C exit()       D getPriority() 答案:ABD 解析:看Java AP ...