[英]Grab price from URL
我正在嘗試使用simple-html-dom從任何給定的URL獲得價格。 我使用的示例代碼效果很好,可從此處獲得: http : //www.sanwebe.com/2013/06/extract-url-content-like-facebook-with-php-and-jquery
//Include PHP HTML DOM parser (requires PHP 5 +)
include_once("Includes/simple_html_dom.inc.php");
//get URL content
$get_content = file_get_html($get_url);
獲得標題可以正常工作:
//Get Page Title
foreach($get_content->find('title') as $element)
{
$page_title = $element->plaintext;
}
但是,當嘗試讀取span元素以獲取價格以尋找貨幣符號時,我什么也沒得到。
//Get Price
foreach($get_content->find('span') as $element)
{
$price = $element->plaintext;
if (strpos($price, '$') !== FALSE)
{
$page_price = $price;
}
else { $page_price = '0.00';}
}
不幸的是,這種工作方式很有效,DOMDocument受阻,有時會在textContent中添加<script>內容……而且我不知道如何使用“ simple_html_dom”來做到這一點,但是我認為這很容易移植;)(如果它比DOMDocument更智能,那會讓我感到驚訝,但誰知道..)
編輯:更新了代碼,以解決<腳本>標記問題/錯誤與DOMNode-> textContent
<?php
error_reporting(E_ALL);
$html=file_get_contents("http://rads.stackoverflow.com/amzn/click/B0081IDX84");
$domd=new DOMDocument();
@$domd->loadHTML($html);
$matches=array();
foreach($domd->getElementsByTagName("script") as $node){
//DOMDocument is retarded, and will sometimes add <script> content to
//textContent, so removing them..
$node->parentNode->removeChild($node);
}
foreach($domd->getElementsByTagName("span") as $node){
if(strpos($node->textContent, '$') !==false){
$matches[]=$node->textContent;
}
}
if(php_sapi_name() === 'cli'){
var_dump($matches);
} else {
echo '<pre>';
ob_start();
var_dump($matches);
echo htmlentities(ob_get_clean());
echo '</pre>';
}
您可以在此處查看運行中的代碼http://codepad.viper-7.com/y1b0y3
strpos()只會返回“ $”的頭寸,而不是價格。 同樣,該變量在每次換行后都會被覆蓋,因此,一旦找到正確的值,您可能想跳出循環。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.