繁体   English   中英

如何使用简单的html dom解析器从抓取中抓取特定数据

[英]How to scrape specific data from scrape with simple html dom parser

我正在尝试从亚马逊网页上的产品中抓取价格数据,但我不仅获得了变量中的价格数据,还获得了包括<span>等的其他元素。代码...

include 'simple_html_dom.php';
$html1 = file_get_html('http://www.amazon.co.uk/New-Apple-iPod-touch-Generation/dp/B0040GIZTI/ref=br_lf_m_1000333483_1_1_img?ie=UTF8&s=electronics&pf_rd_p=229345967&pf_rd_s=center-3&pf_rd_t=1401&pf_rd_i=1000333483&pf_rd_m=A3P5ROKL5A1OLE&pf_rd_r=1ZW9HJW2KN2C2MTRJH60');

$price_data1 = $html1->find('b[class=priceLarge]',0);

然后,该变量还包含诸如<b class="priceLarge">£163.00</b>

有没有办法修剪掉不需要的数据? 我只需要163.00英镑。

我不确定是否在查找过程中执行此操作,或者不确定当我回显变量时,是否指定所需内容?

干杯

只是使用

$result=$price_data1->innertext;

你一定会得到欲望的输出。

更改XPath以选择<b>元素的text()子元素,而不是选择元素本身。

$price_data1 = $html1->find('b[class=priceLarge]/text()',0);

您可以尝试在线API,例如Synthetics Web 您可以以最少的编码工作量提取数据。

$url = urlencode('http://www.amazon.co.uk/New-Apple-iPod-touch-Generation/dp/B0040GIZTI/ref=br_lf_m_1000333483_1_1_img?ie=UTF8&s=electronics&pf_rd_p=229345967&pf_rd_s=center-3&pf_rd_t=1401&pf_rd_i=1000333483&pf_rd_m=A3P5ROKL5A1OLE&pf_rd_r=1ZW9HJW2KN2C2MTRJH60');
$wid = '160';

$data = json_decode(file_get_contents("http://www.syntheticsweb.com/resources/www.json?wid=$wid&url=$url"));

echo $data->price;
<b class="priceLarge">£163.00</b>

只需使用以下内容:

$p = "/b class=\"priceLarge\">(.*)<\/b>/";
preg_match($p, $html, $match)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM