我需要一个XPATH来从www.gsmarena.com中提取数据

时间:2016-08-17 08:41:17

标签: xpath extract

我正在研究移动电话多年来如何演变,所以我需要创建一个数据库,其中包含尽可能多的手机规格。我试图从GSM Arena网站上删除数据。

示例页面:http://www.gsmarena.com/samsung_galaxy_note7-8082.php

我使用的XPATH包含每个值前面的标签,例如 // tr [contains(。," Sensors")] / td [2]

但是有一些值,最后一个在类别中,没有前面的标签。

如何选择此信息:

不可拆卸的Li-Po 3500 mAh电池

或者这个ino:

快速充电 齐无线充电(市场依赖) ANT +支持 S-Voice自然语言命令和听写 MP4 / DivX / XviD / WMV / H.265播放器 MP3 / WAV / WMA / eAAC + / FLAC播放器 照片/视频编辑器 文档编辑器

请注意,不同的手机在页面上有不同的行数,因此在XPATH中使用[number]会从

中选择不同的信息

http://www.gsmarena.com/samsung_galaxy_note7-8082.php - 需要选择第5行功能

http://www.gsmarena.com/samsung_sgh_600-49.php - 需要选择第8行功能

1 个答案:

答案 0 :(得分:1)

要选择Battery部分中没有标签的行,您必须使用此xpath:

//tbody[.//th[contains(.,'Battery')]]//td[@class="ttl" and not(*)]/following-sibling::td

要从功能中选择信息,请使用此

//tbody[.//th[contains(.,'Features')]]//td[@class="ttl" and not(*)]/following-sibling::td

选择相机功能

//tbody[.//th[contains(.,'Camera')]]//td[@class="ttl" and contains(.,'Features')]/following-sibling::td

选择声音类别中的扬声器

//tbody[.//th[contains(.,'Sound')]]//td[@class="ttl" and contains(.,'Loudspeaker')]/following-sibling::td