我是新手,我正在使用php库“ PHP Simple HTML DOM Parser”来获取该网站上产品的价格和日期: http://www.mercadopublico.cl/TiendaFicha/Ficha?idProducto=1557392
This image shows the values that I want to obtain
This information delivers the inspect elements
我有以下代码:
<?php
include('simplehtmldom/simple_html_dom.php');
// get DOM from URL or file
$html = file_get_html('http://www.mercadopublico.cl/TiendaFicha/Ficha?idProducto=1557392');
// find all span tags with id=spPrecio
foreach($html->find('span#spPrecio') as $e)
echo $e->outertext . '<br>';
?>
但是我无法获得所需的东西,只能得到标题h3之类的数据。我尝试了许多解决方案,但对我没有任何帮助,请给我帮助。
谢谢。
答案 0 :(得分:0)
在浏览器开发人员工具中检查了网络流量之后,您可以看到HTML的部分加载了(您从file_get_html
获得的HTML),然后JavaScript通过XHR请求对其进行了修改。
您的价格通过此链接加载:
http://www.mercadopublico.cl/TiendaFicha/Ficha/ObtenerPrecioMenor?idProducto=1557392&idConvenioMarco=5800221&_=1574869395485
其中的参数是:
idProducto=1557392
idConvenioMarco=5800221
_=1574869395485
idProducto-在您提供的链接中。
在您下载的DOM中找到IdConvenionMarco:
<input data-val="true" data-val-number="The field IdConvenioMarco must be a number." data-val-required="The IdConvenioMarco field is required." id="hdnIdConvenioMarco" name="ProductosConvenio.IdConvenioMarco" type="hidden" value="5800221" />
最后一个_是UNIX时间戳(以毫秒为单位)。 拥有这三个参数可以为您提供任何产品价格。响应使用JSON:
{"Precio":"$ 2.178","Estado":true}