我目前正在使用PHP Simple HTML DOM Parser来获取数据。有关解析器的更多信息,请访问:http://simplehtmldom.sourceforge.net/
我正在处理一个解析Javascript变量的脚本,我希望它们是一个简单的文本。
这是我解析的页面: http://www.sportsdirect.com/adidas-adi5-x-ite-mens-astro-turf-trainers-263185?colcode=26318536
以下是我用于解析的代码:
<?PHP
include_once('simple_html_dom.php');
$url = "http://www.sportsdirect.com/adidas-adi5-x-ite-mens-astro-turf-trainers-263185?colcode=26318536";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
$str = curl_exec($curl);
curl_close($curl);
$html= str_get_html($str);
preg_match_all('/\"SizeName\":\"([0-9]+)\"/',$str,$matches);
echo '<pre>';
print_r($matches);
echo '</pre>';
?>
您可以在此处查看此代码的输出: http://sportsdirectbg.superweb.bg/test.php
6.5
但在我的情况下,它将它们打印为简单的6,为什么? $ProductSize - $ProductPrice
如果你能理解我的意思。
提前致谢!
答案 0 :(得分:0)
首先,这几乎与之前提到的PHP Simple HTML DOM Parser and Javascript selection?重复。
你获得整数的原因是因为你的正则表达式只是寻找整数,所以改变它你将得到包括小数在内的整个大小。但正如Patrick Q所说,你的部分问题是没有正确使用Simple HTML DOM Parser来通过ID或类名等来获取这些元素,而不是通过正则表达式。
正如我在另一个问题中所说的那样,通过简单的HTML DOM Parser无法进行Javascript解析。如果你愿意,你可以抓住整个页面并搜索具有不同选项的JSON数组的colourVariantsInitialData
,但我相信这不可能使用HTML DOM Parser,但可能是这样! / p>