php过滤p标签及属性,我怎样才能在PHP中获取a p标签的alt属性?

我正在编写一个只回应价格的脚本.

如果我做:

$alttag = $oNode['p'];

echo $alttag;

它将回显< p>< / p>中的所有内容.

所以它会回应:

cafénevrij的roodmerk

500克

2 pakken

prijs每公斤1,99

199

从网站上,所以你可以看到它的回声199,这是价格,但首先我只需要在< p>< / p>中的199而且我要 .或者,在199之间,因此它将显示1,99或1.99.

如果我做:

$alttag = $oNode['p sup'];

echo $alttag;

它只会回复< sup>< / sup>中的99.

如果我做:

$alttag = $oNode['p sup'];

$maintag = $oNode['p']->attr('alt');

echo $maintag . $alttag;

嗯……这没什么

我怎么才能得到1和99并且放置一个.或者,它之间看起来像1,99或1.99?

1

99

完整代码:不包含php函数和数据库连接.

// Extracts offers from html and return in array

function extractSparOffers($url)

{

loadPqUrl($url);

//Test $dates = extractDateRange(pq('.contentdatagrid td:first'));

$oNodes = pq('.item');

if($oNodes->count() == 0) throw new Exception('No offers were found.');

foreach($oNodes as $oNode) {

$oNode = pq($oNode);

//Test $titleDescCell = $oNode['input#a']->parent();

//Test $titleDescCell['img, input']->remove();

$priceCell = $oNode['span.price1']->parent()->parent();

// Get title and description

$data['title'] = $oNode['.item-content h3'];

$data['description'] = $oNode['.item-content p'];

// Get prices (page may contain price ranges)

$alttag = $oNode['p sup'];

$maintag = $oNode['p']->attr('alt');

echo $maintag;

//echo $alttag;

//$alttags=preg_match_all('/]*alt="([^"]*)"/i', $html, $matches);

$none = "0.00";

$data['priceBefore'] = $none;

$data['priceAfter'] = $alttag;

// $oNode['item-prijs p.sup.cufon cufon-canvas']->attr('alt') ;

// Get image

$imgNode = $oNode['img:only-child'];

if(count($imgNode) > 0)

$img = getimg('http://www.spar.nl/' . $oNode['img:only-child']->

attr('src'));

else $img = '';

$data['image'] = $img;

//Test $data['dateStart'] = $dates['start'];

//Test $data['dateEnd'] = $dates['end'];

$date =date('Y-m-d');

$data['dateStart'] = date('Y-m-d', strtotime("yesterday"));

$data['dateEnd'] = date('Y-m-d', strtotime("tomorrow"));

$data = formatOfferStrings($data);

$odTotal[] = $data;

}

return $odTotal;

}

spiderInit();

$offerData = extractSparOffers('http://www.spar.nl/aanbiedingen/');

//Test processNewOffers('Spar', $offerData, $offerData[0]['dateStart']);

processNewOffers('Spar', $offerData, $dates['start']);

?>

最佳答案 那么这基本上是价格的网络爬虫吗?我建议你研究一下使用PHP的DOMDocument库解析XML(实际上是哪个XHTML).然后你可以这样做:

//create a new DOMDocument object

$xmlDoc = new DOMDocument();

//load your html for parsing

$xmlDoc->loadHTML("

Your HTML Code
");

//select the element that you want the attribute from...you may need to use $xmlDoc->getElementsByTagName('p');

$p_element = $xmlDoc->getElementById('yourtag');

//get the attribute alt of the selected element

$alt = $p_element->getAttribute('alt');

//show alt attribute value

echo $alt;

这只是伪代码,并不能解决您的问题,但它似乎是一个比您尝试使用的解析器更好的解决方案.查看这些链接以获取更多信息(我希望这会有所帮助):

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值