【东哥福利】火车采集器V9表格类型采集规则分享

【东哥福利】火车采集器V9表格类型采集规则分享

【案例讲解】
今天给大家分享一个表格类型的数据采集案例,很多人在遇到表格性的数据,不知道如何写规则,其实原理都一样,只要能找到符合火车采集器的规则就能采集,找到规则再加循环就能采集表格类型的数据了。今天以国家环境保护部的城市空气测量数据为例。网址:http://datacenter.mep.gov.cn/ind … 2345678910123456789,打开后可以看到如下图:

我们要采集表格中的信息,页面显示总共83447 条信息,2782页。
第一步:分页网址采集
共2782页,我们需要获取到每个页面的网址,通过点击下方分页,发现网址并无变化,我们打开抓包软件Fiddler进行抓包看看,如下图:

【东哥福利】火车采集器V9表格类型采集规则分享

通过抓包发现,抓出来的网址是:http://datacenter.mep.gov.cn:8099/ths-report/report!list.action 但类型是POST,也就是直接访问这个址是看不到数据的,这里需要通过POST方式才能获取到数据。我们在Cookie中找到一行参数,上图选中的蓝色部分,里面还有pageNo=2字样,以东哥的经验,也许这不需要使用火车头的POST功能,直接拼接网址通过GET方式就有可能获取到数据。我们来试试,将抓取的到网址“http://datacenter.mep.gov.cn:8099/ths-report/report!list.action”和cookie中的参数“page.pageNo=2&page.orderBy=&page.order=&orderby=&ordertype=&xmlname=1462415540192”拼接到一起组成“http://datacenter.mep.gov.cn:809 … lname=1462415540192”中间以“?”连接,然后用这个新的网址去浏览器打开,很惊喜,可以打开可以看到数据,如下图:
【东哥福利】火车采集器V9表格类型采集规则分享

这样就简单了,直接通过pageNo=2的参数来生成列表网址:http://datacenter.mep.gov.cn:809 … action?page.pageNo=[地址参数]&page.orderBy=&page.order=&orderby=&ordertype=&xmlname=1462415540192,参照下图:

【东哥福利】火车采集器V9表格类型采集规则分享
因为我需要获取的内容就在列表页中,所以需要设置起始网址就是内容页网址,参照下图,直接点“点击设置”即可
【东哥福利】火车采集器V9表格类型采集规则分享

第二步:表格内容采集

通过查询网页源码,可以看到页面代码如下图:
【东哥福利】火车采集器V9表格类型采集规则分享
我们需要找到一个能够匹配所有表格内容并且不能包含第一行表头内容,看起来,似乎找不到规则,仔细查看发现“<td rowid=””符合要求,通过查找,正好能匹配所有内容,符合循环规则要求。参照下图:
【东哥福利】火车采集器V9表格类型采集规则分享

但这只是完成了第一步,我们需要找一个代替规则能够去满足采集表格中不同列的数据,发“colid=”1”这个可以,里面的参数1-10正好可以用来区分,参照下图:
【东哥福利】火车采集器V9表格类型采集规则分享

我们的规则可以这样写了,开头字符串:<td rowid=”(*)colid=”1″(*)”>  结尾字符串:</td>,中间的(*)是通配符,表示任意字符,我们只要找到关键字符串即可,其他用(*)代替,另外我们要将循环匹配√上,参照下图:
【东哥福利】火车采集器V9表格类型采集规则分享

上图是城市名称信息的采集规则,那其他信息依此类推,我们直接复制城市的规则,然后粘贴,然后将标签名改成对应的名称,其后规则开头字符串:<td rowid=”(*)colid=”1″(*)”> 中的olid=”1″中的数字改成对应的数字即可,如1对应的是城市,2对应的是测值范围,3对应的是平均值……,参照下图:
【东哥福利】火车采集器V9表格类型采集规则分享

这样内容的采集规则就设置好了,还差一步,上面我们设置了循环,然后需要设置循环采集的数据的形式,我们设置为“添加为新记录”,这样采集出来数据就和网页中的表格一样会是一行一条记录。如下图:
【东哥福利】火车采集器V9表格类型采集规则分享

我们测试运行,如下图:
【东哥福利】火车采集器V9表格类型采集规则分享

这样就可以了,最后来一个采集动态图

【东哥福利】火车采集器V9表格类型采集规则分享

小伙伴学会了吗,起来下载规则来试一试吧,网站中还有很多其他数据,可以亲自去试一试。