集搜客GooSeeker网络爬虫

标题: 采集表格遇到的问题 [打印本页]

作者: jasonjoo    时间: 2018-11-2 13:50
标题: 采集表格遇到的问题
采集这个网址下面的数据https://www.digikey.com.cn/produ ... BC%88IC%EF%BC%89/32,采用两级采集,第一级很简单,设置第二级规则时,遇到问题,1、各个数据的class是一样的,必须使用绝对定位才能抓到数据,
但是不同类别的(专用IC、存储器)的表格结构不一致,“零件状态”分别在19,27列;
2、参考https://www.gooseeker.com/doc/th ... etag=s_pctim_aiomsg上面的方法2,重新设置规则,但是重新加载规则,都跑到第一第三格去了[attach]10228[/attach]

请帮忙看一下,应该如何设置可以达到自己的需求,主题名是:集成IC二级



作者: Fuller    时间: 2018-11-2 14:30
[attach]10229[/attach]

因为你做了定位标志映射,手工映射的优先级比自动选择的高,加载的时候会用手工映射的定位标志。错误出在你选的节点都有相同的定位标志,就混淆了,你用他们的父节点的定位标志映射给他们四个,虽然也是相同的,但是,定位起点是父节点,本来就该相同的父节点,然后到他们各自的节点的时候会用编号区分开。

这样做以后不要用绝对定位,可以改回偏好class

作者: jasonjoo    时间: 2018-11-2 15:13
Fuller 发表于 2018-11-2 14:30
因为你做了定位标志映射,手工映射的优先级比自动选择的高,加载的时候会用手工映射的定位标志。错误出在 ...

这样设置之后,用MS谋数台加载该规则,去验证其他类别的网页(https://www.digikey.com.cn/produ ... %82%A8%E5%99%A8/774),发现还是错位了
[attach]10231[/attach]


作者: Fuller    时间: 2018-11-2 17:52
jasonjoo 发表于 2018-11-2 15:13
这样设置之后,用MS谋数台加载该规则,去验证其他类别的网页(https://www.digikey.com.cn/products/zh/% ...

这个比较麻烦,因为两个表的宽度不一样,爬虫是按照单元格位置定位的

我们自己采集这样的数据的时候,是把整个表采集下来,然后用清洗程序分解出每个单元格

作者: jasonjoo    时间: 2018-11-2 19:50
Fuller 发表于 2018-11-2 17:52
这个比较麻烦,因为两个表的宽度不一样,爬虫是按照单元格位置定位的

我们自己采集这样的数据的时候,是 ...

怎么把整个表采集下来,有教程吗,采集之后,每个节点都是这种格式吗:<列名>单元格数据</列名>

作者: jasonjoo    时间: 2018-11-5 10:49
Fuller 发表于 2018-11-2 17:52
这个比较麻烦,因为两个表的宽度不一样,爬虫是按照单元格位置定位的

我们自己采集这样的数据的时候,是 ...

怎么把整个表采集下来,有教程吗,采集之后,每个节点都是这种格式吗:<列名>单元格数据</列名>

作者: MebiuW    时间: 2018-11-5 12:27
这里有两个教程可以看看
https://www.gooseeker.com/doc/article-284-1.html
https://www.gooseeker.com/doc/article-270-1.html
作者: jasonjoo    时间: 2018-11-7 22:51
MebiuW 发表于 2018-11-5 12:27
这里有两个教程可以看看
https://www.gooseeker.com/doc/article-284-1.html
https://www.gooseeker.com/do ...

把不同结构的表格,整张表都抓下路,你给的链接好像没有看到方法,自定义Xpath好像是对不同结构,采取两个Xpath,整张表格的抓取,有没有案例可以分享一下

作者: Fuller    时间: 2018-11-8 09:03
jasonjoo 发表于 2018-11-7 22:51
把不同结构的表格,整张表都抓下路,你给的链接好像没有看到方法,自定义Xpath好像是对不同结构,采取两 ...

不管用哪种方式,采集下来以后,要做一些加工。

方案一:
每一行是一个tr,用这个tr节点做内容映射,然后做样例复制映射,把所有行采集下来。另外,高级设置勾上“网页片段”,等导出excel以后,用分列的方法,把每个td分开

方案二:
做一个嵌套的整理箱,里面一层是在一行tr中对td做样例复制,外面一层对tr做样例复制,这样就把一个个单元格采集了下来,等数据导出以后,会看到每个单元格都放一行,需要把按行放的单元格转换成按列放的





欢迎光临 集搜客GooSeeker网络爬虫 (https://www.gooseeker.com/doc/) Powered by Discuz! X3.2