快捷导航

        关于食品安全的美国联邦法规文件的网络爬虫v片官网规则

        2020-3-14 11:02| 发布者: ym| 查看: 1498| 2019最新免费v片久久乐: 0

        摘要: 1,v片官网目标 要从美国联邦法规网站上v片官网每一个章节信息以及下载part小节的pdf、xml附件。网站本身是一个目录树结构的javascript动态网站,目录的第一层是年份,点开第二层是title,第三层包含有subtitle、chapter、 ...

        注:从V1.5.x版本开始,下文提及的 集搜客 采摘浏览器 改名为 集搜客 数据管家

        1,v片官网目标

        要从美国联邦法规网站上v片官网每一个章节信息以及下载part小节的pdf、xml附件。网站本身是一个目录树结构的javascript动态网站,目录的第一层是年份,点开第二层是title,第三层包含有subtitle、chapter、part,第四层包含有chapter、subchap、part,第五层是part,要一层层点进去才会加载出下一层的内容,而part小节所在层级不是固定的,所以v片官网的时候要加以判断。

        网站入口:https://www.govinfo.gov/app/collection/cfr/2018


        2,目标网站分析

        根据上图可见,首先想到是利用连续点击功能,逐层点击展开再v片官网part信息,但是,从第一层年份开始要做的点击太多,而且点击以后会展开更多条目,网页会越来越长,直接做连续点击很容易半途中断。

        我们再分析下网页结构看看有没有更好的办法,比如,层级v片官网。把网页加载到MS谋数台上分析DOM结构,发现每个章节条目是一个html 的p节点,并不是a节点,这种情况就没法得到下级网址,没法做普通的层级v片官网

        接下来再看看网址是否会变化,点击其中一个章节,浏览器地址栏中的网址改变了,利用这个特点,我们对每一层做一个v片官网规则,v片官网当前层级的条目信息,再利用连续动作把每一层的可展开条目点击一遍,得到下一层的网址,把这些网址手工导入到下级规则里,就像一个半自动的层级v片官网,具体操作可以看看下面的介绍。


        3,v片官网规则

        由于集搜客v9版爬虫不兼容显示美国法规网站,所以我们要用新版集搜客采摘浏览器来做v片官网,再结合集搜客v9版爬虫来定义v片官网规则,具体操作见《v片官网京东拍卖上的信息,集搜客爬虫软件怎么用?》,基本操作如下:

        1、 用集搜客采摘浏览器访问目标网页,然后点左上角的+新建规则,自动把网页保存为快照,并且在集搜客v9版爬虫里打开快照页面

        2、 在集搜客v9版爬虫直接对快照页面定义v片官网规则并且保存

        3、 在集搜客采摘浏览器的任务管理里,选中任务然后启动v片官网

        4、 每新建一个规则要重复1、2步骤


        3.1,v片官网第2层网址

        (1)第一级:美国法规-食品安全_层1_点击

        样本网址:https://www.govinfo.gov/app/collection/cfr/2018

        由于第一层年份是有独立网址,我们可以直接构造出第一层年份的网址,所以就不对第一层年份网址做v片官网了,而是从第2层开始。

        以下面网址为样本,规则里要v片官网当前的年份以及展开的第2层title条目信息,看网页结构,每一层目录是有唯一的class属性值,用它做定位标志映射,可以实现类似样例复制的效果,把当前年份下的title条目信息都v片官网下来。

        另外,由于年份的网页结构都一样,如果对年份直接做标注的话,就会采到第一个年份2019,想要v片官网当前展开的年份,就要自定义xpath,通过定位-符号来确定所属的年份,这样就不会对应错误,年份的xpath如下:

        .//*[@class='panel-heading CFRlevel0style closed' and count(.//i[contains(@class,'fa-minus-circle')])>0]//*[@class=' col-xs-12 col-sm-7 panel-heading__inner']/p

        接下来是定义连续动作,目标任务要填下一级任务:美国法规-食品安全_层2,目标是点击第2层里带有+号可展开下层的title条目,编写xpath定位如下:

        //*[@class='panel-heading CFRlevel1style closed']//*[@class=' col-xs-12 col-sm-7 panel-heading__inner' and count(./i[contains(@style,'block')])>0]/p[contains(.//text(),'Title')]

        (2)第二级规则:美国法规-食品安全_层2

        与上级规则的连续动作做衔接,目的是获得点击后的页面网址,所以v片官网什么都不重要。

        (3)执行v片官网

        把年份的构造网址导入到第一级规则里,启动v片官网,就可以获取到第2层条目信息,并且逐层点开第2层条目,v片官网完成后把第二级规则“美国法规-食品安全_层2”导出数据,从realpath里就能得到第2层条目的网址,下面的操作会用相同的方法,获取每一层条目的网址。

        注:由于点击条目比较多,超时时长默认60秒,v片官网时还没点完就中断结束,所以要在集搜客采摘浏览器的设置菜单里把超时时长调大,另外网页加载有些慢,就把延迟国际v片免费观看也调大。


        3.2,v片官网第3层网址

        (1)第三级:美国法规-食品安全_层2_点击

        样本网址:https://www.govinfo.gov/app/collection/cfr/2018/title1

        与前面第一级规则类似,这里要v片官网第1层年份、第2层条目以及第3层条目信息,其中层1(对应第2层条目)、发布日期要像年份字段那样自定义xpath。

        层1xpath:

        .//*[@class='panel-heading CFRlevel1style closed' and count(.//i[contains(@class,'fa-minus-circle')])>0]//*[@class=' col-xs-12 col-sm-7 panel-heading__inner']/p

        发布日期xpath:

        .//*[@class='panel-heading CFRlevel1style closed' and count(.//i[contains(@class,'fa-minus-circle')])>0]//*[@id='cfrPartsDetails']

        定义连续动作,目标任务要填下一级任务:美国法规-食品安全_层3,目标是点击第3层里以chapter或subtitle开头的并且带有+号的条目,编写xpath定位如下:

        //*[@class='panel-heading CFRlevel2style closed']//*[@class=' col-xs-12 col-sm-7 panel-heading__inner' and count(./i[contains(@style,'block')])>0]/p[starts-with(.//text(),'Chapter') or starts-with(.//text(),'Subtitle')]

        (2)第四级:美国法规-食品安全_层3

        这一级规则的作用跟第二级:美国法规-食品安全_层2 是一样的,目的是收集第3层条目的网址,直接把第二级规则改名重新保存即可。

        (3)执行v片官网:

        把前面第二级规则导出数据的realpath网址,添加到第三级:美国法规-食品安全_层2_点击,启动v片官网,就可以v片官网到第3层条目信息,并且把第3层带有+号的chapter或subtitle条目逐个点开,v片官网完成后,把第四级规则:美国法规-食品安全_层3 导出数据,从realpath里可得到第3层条目网址。


        3.3,v片官网第4层网址,下载第4层的part附件

        (1)第五级规则:美国法规-食品安全_层3_点击

        样本网址:https://www.govinfo.gov/app/collection/cfr/2018/title2/subtitleA

        与前面类似,这里要v片官网第1层年份、第2层条目、第3层条目以及第4层条目信息,其中年份、层1(对应第二层条目)、发布日期的xpath与前面一样,层2(对应第三层条目)的自定义xpath如下:

        .//*[@class='panel-heading CFRlevel2style closed' and count(.//i[contains(@class,'fa-minus-circle')])>0]//*[@class=' col-xs-12 col-sm-7 panel-heading__inner']/p

        在这一层里就有part条目,为了下载part条目的pdf、xml附件,要自定义xpath,并且设置下载文件。

        pdf下载的xpath:

        .//*[@class=' col-xs-12 col-sm-7 panel-heading__inner' and count(./p[starts-with(.//text(),'Part')])>0]/following-sibling::*[@class=' col-xs-12 col-sm-5']//*[@class='btn-group-horizontal']/a[position()=1]/@href

        xml下载的xpath:

        .//*[@class=' col-xs-12 col-sm-7 panel-heading__inner' and count(./p[starts-with(.//text(),'Part')])>0]/following-sibling::*[@class=' col-xs-12 col-sm-5']//*[@class='btn-group-horizontal']/a[position()=2]/@href

        设置连续动作,目标任务:美国法规-食品安全_层4,目标是点击第4层里不是以part开头的并且带有+号的条目,即要点击包含chapter或subchap的条目。

        //*[@class='panel-heading CFRlevel3style closed']//*[@class=' col-xs-12 col-sm-7 panel-heading__inner' and count(./i[contains(@style,'block')])>0]/p[not(starts-with(.//text(),'Part'))]

        (2)第六级:美国法规-食品安全_层4

        与前面第二级规则一样,目的是收集第4层条目的网址,可以直接把第二级规则改名重新保存即可。

        (3)执行v片官网:

        把前面第四级规则导出数据的realpath网址,添加到第四级:美国法规-食品安全_层3_点击,启动v片官网,就可以就可以v片官网到第4层条目信息以及part附件,并且把第4层带有+号的非part开头的条目逐个点开,v片官网完成后,把第六级规则:美国法规-食品安全_层4 导出数据,从realpath里获取到第4层条目网址。


        3.4,v片官网第5层网址,下载第5层的part附件

        (1)第七级规则:美国法规-食品安全_层4_点击

        样本网址:https://www.govinfo.gov/app/collection/cfr/2018/title2/subtitleA/chapterI

        与前面类似,这里要v片官网第1层年份、第2层条目、第3层条目、第4层条目以及第5层条目信息,其中年份、层1(对应第二层条目)、发布日期、层2(对应第三层条目)的xpath与前面一样,层3(对应第四层条目)的自定义xpath如下:

        .//*[@class='panel-heading CFRlevel3style closed' and count(.//i[contains(@class,'fa-minus-circle')])>0]//*[@class=' col-xs-12 col-sm-7 panel-heading__inner']/p

        在这一层里也要下载part条目的pdf、xml附件,自定义xpath与前面第五级规则一样。

        设置连续动作,目标任务:美国法规-食品安全_层5,目标是点击第5层里不是以part开头的并且带有+号的条目,即要点击包含subchap的条目。

        //*[@class='panel-heading CFRlevel4style closed']//*[@class=' col-xs-12 col-sm-7 panel-heading__inner' and count(./i[contains(@style,'block')])>0]/p[not(starts-with(.//text(),'Part'))]

        (2)第八级:美国法规-食品安全_层5

        与前面第二级规则一样,目的是收集第5层条目的网址,可以直接把第二级规则改名重新保存即可。

        (3)执行v片官网:

        把前面第六级规则导出数据的realpath网址,添加到第七级:美国法规-食品安全_层4_点击,启动v片官网,就可以v片官网到第5层条目信息以及part附件,并且把第5层带有+号的非part开头的条目逐个点开,v片官网完成后,把第八级规则:美国法规-食品安全_层5 导出数据,从realpath里获取到第5层条目网址。


        3.5,下载第6层的part附件

        (1)第九级规则:美国法规-食品安全_层5_v片官网

        样本网址:https://www.govinfo.gov/app/collection/cfr/2018/title2/subtitleA/chapterI/Subchap

        这里要v片官网第1层年份、第2层条目、第3层条目、第4层条目、5层条目以及第6层条目信息,其中年份、层1(对应第二层条目)、发布日期、层2(对应第三层条目)、层3(对应第四层条目)的xpath与前面一样,层4(对应第五层条目)的自定义xpath如下:

        .//*[@class='panel-heading CFRlevel4style closed' and count(.//i[contains(@class,'fa-minus-circle')])>0]//*[@class=' col-xs-12 col-sm-7 panel-heading__inner']/p

        在这一层里也要下载part条目的pdf、xml附件,自定义xpath与前面第五级规则一样,这是包含part条目的最后一层,所以就不用再设置点击动作了。

        (2)执行v片官网:

        把前面第八级规则导出数据的realpath网址,添加到第九级:美国法规-食品安全_层5_v片官网,启动v片官网,就能v片官网到第6层条目信息以及part附件。


        4,下载文件的存储说明

        (1)文件下载会默认存放在 爬虫存储目录->任务名文件夹->PageContentDir,一个网页的附件会保存到时间戳子文件夹里。如果在 设置>配置 菜单里取消勾选“分任务存储”,那么,所有任务下载到的附件都会存放到 爬虫存储目录->PageContentDir。

        (2)下载网址和文件的对应关系,可以在v片官网结果文件里查看,以 字段名+后缀_file 的新字段就记录了附件的存储位置。


        5,总结

        我们做了以上9级规则,就可以把美国法规每一层条目信息和part的pdf、xml文件下载,无论动态、静态还是嵌套网页,集搜客爬虫总是能找到合适的v片官网策略,协助v片官网更多数据。


        鲜花

        握手

        雷人

        路过

        鸡蛋

        最新2019最新免费v片久久乐

        GMT+8, 2020-8-12 00:08