9 15433

ALIBABA company_profile

leixiaola 于 2016-8-14 21:09 发表 [复制链接]
遇到的问题描述
需要按类别抓取该页面信息
比如:Business Type:是什么,Total Employees是什么
但是被Total Annual Revenue难住了
因为其他的值都是固定一行,Total Annual Revenue非固定行数,有一行有二行还有三行
并且alibaba都是TR结构,不能做样列复制,因为会抓到其他的值
采用定位标志映射也无效。
希望得到效果:在一个抓取标签下获取完整内容。
求救
举例网址:
https://sdzesen.en.alibaba.com/company_profile.html
https://heatpresses.en.alibaba.com/company_profile.html
举报 使用道具
| 回复

共 9 个关于本帖的回复 最后回复于 2019-9-2 15:14

leixiaola 金牌会员 发表于 2016-8-14 21:18:27 | 显示全部楼层
本帖最后由 leixiaola 于 2016-8-14 21:23 编辑

爬虫编写如下

爬虫编写如下

爬虫编写如下


抓取Total Annual Revenue 为一行值时(https://auning.en.alibaba.com/company_profile.html),抓取正常

成功

成功

抓取Total Annual Revenue 为多行值时(https://wal.en.alibaba.com/company_profile.html),抓取失败

失败

失败


举报 使用道具
Fuller 管理员 发表于 2016-8-14 21:43:53 | 显示全部楼层
自定义xpath.png


像上图,可以根据DOM节点的位置写xpath,比如,2016和2015都可以相对于Total Annual Revenue,那么2016那个就是
  1. //tr[contains(th/text(), 'Total Annual Revenue')]/td[1]/span[1]/text()
复制代码
那么2015就是
  1. //tr[contains(th/text(), 'Total Annual Revenue')]/td[1]/span[2]/text()
复制代码



举报 使用道具
Fuller 管理员 发表于 2016-8-14 21:44:47 | 显示全部楼层
如果有很多行,可以做一个嵌套的整理箱,专门为total annual revenue做样例复制
举报 使用道具
leixiaola 金牌会员 发表于 2016-8-14 23:29:36 | 显示全部楼层
本帖最后由 leixiaola 于 2016-8-14 23:34 编辑
Fuller 发表于 2016-8-14 21:44
如果有很多行,可以做一个嵌套的整理箱,专门为total annual revenue做样例复制 ...

还是没能理解
1.如果要做样列复制的话,下面的其他TR内容也会被抓到这个嵌套内容中了
比如这个主题:company_profile-LIST
4.JPG
2.DOM节点的位置写xpath
这个没明白耶
是要建立多个名称标签,然后取值么
可是有几行数据是不固定的呢
主题:company_profile
改了一下还是不太对

希望最终展现形式,类似
请赐教Top 3 Markets:,一个标签就可以获得多行值
5.JPG


举报 使用道具
Fuller 管理员 发表于 2016-8-14 23:45:15 | 显示全部楼层
leixiaola 发表于 2016-8-14 23:29
还是没能理解
1.如果要做样列复制的话,下面的其他TR内容也会被抓到这个嵌套内容中了
比如这个主题:compa ...

刚才我看错了,我还以为每一年的数值是在同一个tr下的span,其实不是这样,是每一年的revenue都在一个tr下。

要自定义xpath也很麻烦。

要是我采集这个数据的话,我会把所有的tr都做成一个样例复制,采集里面的标题和值,形成一对key,value,等入库以后,再逐个把key找出来,展开成一张表
举报 使用道具
leixiaola 金牌会员 发表于 2016-8-15 00:05:44 | 显示全部楼层
Fuller 发表于 2016-8-14 23:45
刚才我看错了,我还以为每一年的数值是在同一个tr下的span,其实不是这样,是每一年的revenue都在一个tr ...

我按照您说的这个思路想了一下,不知道是不是下面主题这样的
主题:【LIST】company_profile
但是对于多行的revenue来讲,第二行,第三行等等怎么加key呢?
6.JPG
举报 使用道具
Fuller 管理员 发表于 2016-8-15 09:12:13 | 显示全部楼层
leixiaola 发表于 2016-8-15 00:05
我按照您说的这个思路想了一下,不知道是不是下面主题这样的
主题:【LIST】company_profile
但是对于多 ...

这样也可以,处理结果文件的时候,可以用 : 作为识别符号,前面的就是key,后面的就是value。

做规则的时候可以把key和value分开,创立两个抓取内容,我看到key放在一个th下,比较容易做映射
举报 使用道具
Shelley1455 新手上路 发表于 2019-9-2 09:28:32 | 显示全部楼层
我想抓取Alibaba里产品的overview里的quick detail的数据,请问怎么创建规则呢
举报 使用道具
Fuller 管理员 发表于 2019-9-2 15:14:04 | 显示全部楼层
Shelley1455 发表于 2019-9-2 09:28
我想抓取Alibaba里产品的overview里的quick detail的数据,请问怎么创建规则呢

参数20190902150903.png

每个参数都放在一个dl中,dt存参数名,dd存参数值,所以,用样例复制很容易做规则。

但是,每个产品的参数不一样,定义规则的时候,不要具体到参数名。比如,上图,不要期望每个产品第一个参数的名字都是“Plate Type”。另一个产品的第一个参数可能是另一个值。所以,在整理箱中不要定义一个抓取内容就叫“Plate type”,那么样会对不上的。

抓取内容应该把参数名和参数值都当成抓取内容抓下来
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Gephi社会网络分析-马蜂窝游记文本分词并同
  • Gephi社会网络分析-基于马蜂窝游记文本以词
  • 知乎话题文本根据词语间距筛选后生成共词矩
  • 马蜂窝游记文本分词后以词语间距为筛选条件
  • 学习使用apriori算法挖掘关联关系

热门用户

GMT+8, 2024-4-19 10:20