我正在尝试写一个网上商店的爬虫,现在我需要获得网页的价格价值。这是我的尝试:
$match = "";
$isMatched = preg_match('|<div class="c-product__seller-price-pure js-price-value".*\$(.*)<|',$html,$match);
echo "<pre>";
print_r($match);
echo "</pre>";
基本上,$html
保存了网页的源代码,价格值存储在文档中,如下所示:
<div class="c-product__seller-price-pure js-price-value">10,699,000</div>
但是当我运行这个命令时,我得到的结果是:
Array
(
)
这意味着,我使用的正则表达式是不正确的:
|<div class="c-product__seller-price-pure js-price-value".*\$(.*)<|
那么,如何使用regex正确地获得这个价格值呢?
发布于 2021-06-27 13:42:47
您当前正在匹配js- .*
-value“后面的任何字符价格与美元符号`$。但是在您的源HTML中没有美元符号。
去掉$
符号,匹配标签开头和结尾之间的任何内容。
最简单的方法是使用NOT运算符^
来匹配任何不是<
符号的字符,比如下面的([^<]+)
下面是完整的代码:
$match = "";
$isMatched = preg_match('|c-product__seller-price-pure js-price-value">([^<]+)|', $html, $match);
echo "<pre>";
print_r($match);
echo "</pre>";
https://stackoverflow.com/questions/68148313
复制相似问题