我已经遍布谷歌,试图找出如何使用PHP找到产品的价格。
我希望从产品网址中获取价格
我不想使用亚马逊网络服务,因为我的帐户被禁止了,而且我正在寻找一种更简单的方法。
我对PHP不太好,而且我来自Python,我认为你可以使用像Regex或匹配的东西(如果这些存在于PHP中)。
答案 0 :(得分:1)
以下是一些可以获取价格的PHP代码,但是,如果提供价格,它将不会获得该价格,它只会获得亚马逊产品的总价。
//Grab the contents of the Product page from Amazon
$source = file_get_contents("https://www.amazon.com/dp/B01DFKC2SO");
//Find the Price (Searches using Regex)
preg_match("'<span id=\"priceblock_ourprice\" class=\"a-size-medium a-color-price\">(.*?)</span>'si", $source, $match);
//Check if it was actually found.
if($match){
//Echo Price if it was indeed found.
echo $match[1];
}
我也不确定是否可以与.com和其他版本的亚马逊这样做,你必须搜索正确的标签,类和/或IDS。
修改强>
正如在这个答案的评论中所要求的,要获得标题,请添加以下代码:
//Find the Title (Searches using Regex)
preg_match("'<span id=\"productTitle\" class=\"a-size-large\">(.*?)</span>'si", $source, $match);
if($match){
echo $match[1];
}
答案 1 :(得分:0)
您也可以使用PHPHtmlParser包。
PHPHtmlParser是一个简单,灵活的html解析器,允许您使用 使用任何css选择器选择标签,如jQuery。目标是 帮助开发需要快速,简便的工具 废弃HTML,无论它是否有效!这个项目是原创的 由sunra / php-simple-html-dom-parser支持,但支持似乎 已停止,所以这个项目是我改编他以前的工作。
然后你可以用它来提取这样的价格:
// of course you need to install the package, best done using composer
include 'vendor/autoload.php';
use PHPHtmlParser\Dom;
$dom = new Dom;
// create a Dom object from the desired url
$dom->loadFromUrl("https://www.amazon.com/gp/product/B01LOP8EZC/ref=s9_top_hd_bw_b710gst_g63_i1?pf_rd_m=ATVPDKIKX0DER&pf_rd_s=merchandised-search-1&pf_rd_r=BP4XPK3DA9H3QTJBWM20&pf_rd_t=101&pf_rd_p=2530894322&pf_rd_i=6427871011");
// extract the price from the Dom
$price = $dom->find('#priceblock_ourprice');
print $price->text();
答案 2 :(得分:0)
如果您还没有访问Amazon产品api的权限,并且想批量获取价格,那么最好的选择是使用其他一些免费/付费的第三方公共API。在我们的启动中,我们使用RapidAPI中的amazon-price,它在一个请求中最多支持1000种产品。我们尝试了其他选择,但是其中大多数不支持批量价格和/或价格更高,这可能是因为它们还提供了价格以外的其他数据。