gpt4 book ai didi

php - 网页上相关产品的提取价格

转载 作者:行者123 更新时间:2023-12-02 09:13:37 25 4
gpt4 key购买 nike

我正在开发网络爬虫。我在网页上搜索了我的产品的产品标题。如果页面上存在相同的产品,那么我想提取该产品的价格。为此我使用 XPath

这是我的 html 代码,我需要从中提取价格。

<div class="products_list_table">
<table id="products_list_table_table" cellspacing="6" cellpadding="0" border="0">
<tbody>
<tr>
<td valign="top" align="center">
<span class="product_title">Malik Candy FC Composite Hockey Stick</span>
<div class="list_price_bar all-cnrs">
<span class="list_price_title">Price Now:</span>
<span class="list_sale_price">£40.00</span>
</div>
</td>
</tr>
<tr>
<td valign="top" align="center">
<span class="product_title">Malik TC Stylish Hockey Stick</span>
<div class="list_price_bar all-cnrs">
<span class="list_price_title">Price Now:</span>
<span class="list_sale_price">£70.00</span>
</div>
</td>
</tr>

...
</tbody>
</table>
<div>

所有产品都有很多 tr 标签,如果发现我想提取该产品的价格,我会搜索产品标题。

这是我在文件 test.php 中的 php 代码

<?php
set_time_limit(0);
if(isset($_POST['title']) && $_POST['title']!= ''){
$product_title = mysql_real_escape_string($_POST['title']);
$url = 'http://www.example.com';
$html = file_get_contents($url);
$doc = new DOMDocument();
@$doc->loadHTML($html);
$xpath = new DOMXPath($doc);
$found = $xpath->evaluate("boolean(//span[contains(text(), '". $product_title ."' )])");
if($found == false){
echo "Not Found";
}
else {
$elements = $xpath->evaluate("//span[@class='list_sale_price']");
if (!is_null($elements)) {
foreach ($elements as $element) {
$nodes = $element->childNodes;
foreach ($nodes as $node) {
echo $node->nodeValue.'<br>';
}
}
}
}
}

?>

这里我使用 test.php 中的表单来搜索产品

<html>
<head>
<title></title>
</head>
<body>
<form action="" method="post">
<label>Enter product title to search</label><br /><br />
<input type="text" name="title" size="50" /><br /><br />
<input type="submit" value="Search" onclick="msg()"/>
</form>
</body>
</html>

找到产品后,我想提取该产品的价格,但它显示页面上的所有价格。我在哪里犯了错误。需要xpath表达式来提取匹配产品的价格。

最佳答案

您不需要多个表达式。您可以使用 one XPath 表达式提取价格,方法是选择匹配 span 后面的 div,并在这种情况下提取其子 span 具有 list_sale_price 类:

//span[contains(text(), 'Malik Candy' )]/following-sibling::div/span[@class='list_sale_price']

关于php - 网页上相关产品的提取价格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23698645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com