前言
最近由于工作需要,想要阅读下《YY/T 0664-2020 医疗器械软件 软件生存周期过程》这个标准,手头上只有YY/T 0664-2008版的,没有最新版。公司法规部没有,在网上逛了一圈,居然没找到可以下载的资源。这里不得不吐槽下国家标准委员会,制定的标准居然还要购买才能阅读,当初参与制定标准的企业可都是已经花过钱的,并且制定的标准对于当初参与制定标准的企业是有利的。更要鄙视下百度文库,付费下载也就罢了,居然阅读还需要VIP才行,并且电子版书比纸质版的还要贵,还是扫描版的,真是想钱想疯了。比起百度,道客巴巴还算好一点,虽然要付费下载,但至少能够在线阅读。
网络爬虫
本着万物皆可爬的原则,果断放弃百度、道客巴巴这些安全性比较高的网站,转向那些非盈利组织网站和政府网站。一般而言,这些网站的安全性能一般,很容易抓取到我们需要的数据。在大量抓取取分析过程中,一条“https://www.cmde.org.cn/directory/web/WS01/hbpdf/YY0608-2013.pdf”数据引起了我的注意,居然是一个PDF的存储路径,当然啦,这个PDF不是我需要的,我尝试在输入栏中输入“https://www.cmde.org.cn/directory/web/WS01/hbpdf/YY0664-2020.pdf”,居然意外地得到我需要的文档。既然是从事医疗器械行业的,那就下载下所有的YY标准吧,通过遍历很快得到了所需要的的材料。但是一个新问题出现了,文件的名称只有标准号和年号,没有标准对应的名称,这个想通过PDF名称识别与哪个行业相关就很困难了。所以还得再爬一次,爬取标准的标准号和标准名称对应的关系。
这次没选择“国家药品监督管理局医疗器械技术审评中心”这个网站,因为没找到。想到国家标准中心,省一级的肯定也有类似的组织,叫“质量和标准化研究院”,这次选择“苏大强”下手。“苏大强”果然名不虚传,搜索出来的结果比其它省份质量和标准化研究院要丰富的多。下图就是搜索出来显示的结果
如果能从网页源码中提取出类似“医疗器械软件 软件生存周期过程”字符,就成功了一大半,可惜事与愿违,搜索的结果是通过js展示的。这个也难不倒我,通过Chrome浏览器的“开发者工具”,重新刷新下页面,在工具中搜索“医疗器械软件”,不出意外的话应该会搜索到相关的记录。
果不其然,搜索结果的访问地址已经变成http://www.bzsou.com.cn/ibmb/solrData/search.do?searchString=yy0664&isTilu=true&isContent=true&isEnterprise=false,返回的结果是一个json字符串,这个字符串简直是一个巨大的宝库啊,居然有那么多信息,其中STAN_CNNAME字段表示标准的中文名称,其它字段的含义大家可自行分析。
看上图中红色标记的PDF_DOUBLE_PATH和PDF_INDEX_PATH,后者是文档首页缩略图的地址,那么前者应该就是标准文档的地址,内心一阵狂喜,然而在浏览器中输入后没反应,但是把端口号8080改为8087后,奇迹出现了。又得到了一种下载标准文档的新方式,并且功能更强大,能下载IEC、ISO、GB等标准文档。不过不是所有的标准文档都有下载路径,有些标准可能省质量与标准化研究院也没有吧。
既然该网站的数据库那么丰富,能不能通过模糊查找批量爬取。经过试验,当查询的结果多于3页,每页50条后,浏览第4页时需要输入验证码,但这个验证码机制似乎有点笨,只要匹配到数据库中的验证码就认为验证成功,与页面显示的字符无关,所以使用一个固定的验证码就可以很轻易的绕开。经过摸索,完整的访问路径是
string url = $"http://www.bzsou.com.cn/ibmb/solrData/search.do?searchString={keywords}&isTilu=false&isContent=false&isEnterprise=false&start={startIndex}&searchVerificationCode=3VND&isActiveState=true&isUnCarryState=true";
其中“keywords”是搜索的关键字,“startIndex”是查看搜索结果条目的起始索引,从0开始,每次搜索结果最多包括50条记录。
道客巴巴
通过以上手段基本能满足我们获取标准文档的需求了,但是部分标准文档仍然不支持下载。这时候我们需要动用终极武器——道客巴巴。道客巴巴是一个令人又爱又恨的网站,资源多,但是大多需要付费。尝试过爬取道客巴巴的文档,道客巴巴的文档是通过Anobe Flash显示出来的,不是js,其中要涉及到一些解析协议,所以放弃了。但是从Github找到了一款好工具,能够将道客巴巴的文档扫描成PDF文档,有兴趣的可以下载下。
立即下载
郑重声明
该文章只是提供一种爬取思路,爬取到的文档仅供个人学习,请勿传播和非法盈利,网络爬虫可能会构成违反犯罪。如果该网页内容对您构成侵权,请务必及时沟通。
文章评论
网站改版后pdf_path已经被替换隐藏掉了……目前暂无法获取文件目录,下载失效