- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在编写一个只显示价格的脚本。如果我这样做:
$alttag = $oNode['p'];
echo $alttag;
它将回显<p></p>
中的所有内容.所以它会回显:
cafeïnevrij 的 roodmerk500克
2 帕肯
价格每公斤 1.99
199
从网站上,您可以看到它是 199,这就是价格,但首先我只需要 199 在 <p></p>
中而且我要 。或 ,介于 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?
<div class="item-prijs">
<p>
<cufon class="cufon cufon-canvas" alt="1" style="width: 27px; height: 42px; ">
<canvas width="47" height="43" style="width: 47px; height: 43px; top: -1px; left: -2px; "></canvas>
<cufontext>1</cufontext>
</cufon>
<sup>
<cufon class="cufon cufon-canvas" alt="99" style="width: 24px; height: 20px; ">
<canvas width="35" height="21" style="width: 35px; height: 21px; top: -1px; left: -1px; ">
</canvas><cufontext>99</cufontext>
</cufon>
</sup>
</p>
</div>
完整代码:不含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('/<img[^>]*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("<html><body>Your HTML Code<br></body></html>");
//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;
这只是伪代码,不会解决您的问题,但它似乎是比您尝试使用的解析器更好的解决方案。查看这些链接以获取更多信息(希望对您有所帮助):
http://www.php.net/manual/en/domdocument.construct.php
http://php.net/manual/en/domelement.getattribute.php
http://www.php.net/manual/en/domdocument.getelementsbytagname.php
关于php - PHP中如何只获取p标签的alt属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8256189/
添加 null alt=""有什么好处?是为了通过验证还是有更多的理由 以及它应该怎么写? 像这样,没有空间 alt="" 或者这个有一个空格 alt=" " 最佳答案 其他答案已经指出了标准中的要求
抱歉,我忘了说我正在使用 Jeff Atwood 的 wasd 104 键代码键盘,并且“Mac 模式设置为开\我正在从 Windows 远程桌面连接到我的 Mac 计算机: 我正在尝试使用自动热键禁
我正在为所有图像添加 alt 属性以提高 SEO/屏幕阅读器性能。 根据最佳实践,纯美学图像应该有一个空的 alt 属性 alt="",以便屏幕阅读器跳过它们。我在 WordPress 中注意到它确实
基本上, 它的灵感来自 Vim 我想使用一个键(例如 Alt、F1)组合(+I J K L)来映射到箭头键 Autohotkey 中已经完成的工作 Ralt & j::send{Left} Ralt
我正在尝试文档页面中解释的示例代码 http://developers.itextpdf.com/content/itext-7-examples/converting-html-pdf/pdfhtm
我正在使用 goatslacker/alt 开发一个 flux 前端程序.我在触发商店更新操作时遇到问题。监听器未按预期运行。 我现在正在处理的代码非常复杂。我将尝试将我的问题简化为以下代码。我希望它
The MSDN page on DXGI提供有关如何处理不同于桌面分辨率的全屏分辨率的说明。它说在调用 IDXGISwapChain::SetFullscreenState() 之前先调用 IDXG
在 javascript Event 对象中,有一些 bool 值来检查修饰键是否被按下: ctrlKey:CTRL 键。 altKey:ALT 键。 altLeft:ALT 左键。仅适用于 IE。
我在cygwin/Xming下使用xterm。 Alt+B(向后跳一个字)和Alt-F(向前跳一个字)不起作用,而是显示一些变音字符或其他东西。 我在我的主目录中创建了一个文件 .Xresources
通过 Azure Bastion 连接时,我无法让 Windows Server 2019 数据中心识别 Alt Gr 键。该键被误认为是 Alt 键。我的本地操作系统是Windows 10,我的浏览
Windows 中的某些键盘布局(例如 US-QWERTY)将右 Alt 视为常规 Alt 键,而其他(例如 US International)将其视为 AltGr,并在按下时同时生成 Ctrl 和
通过 Azure Bastion 连接时,我无法让 Windows Server 2019 数据中心识别 Alt Gr 键。该键被误认为是 Alt 键。我的本地操作系统是Windows 10,我的浏览
我想使用 2 个快捷键显示 console.log():Alt+a 和 Alt+r 但事实并非如此工作,它没有向我显示任何消息。这就是代码 $(document).bind('keydown
我正在使用以下代码检测 alt。它有效,但是当我执行 alt-tab 切换到另一个程序时,我得到 keydown 18 (alt) 并且没有 keyup,并且 alt 保持按下状态。我该如何解决这个问
我想在 shell 终端中使用 ALT + d 来杀死一个单词。 问题是,如果我使用国家字符,即西里尔字母,在按下 ALT + CyrChar 后,我会在我调整的 xterm 上得到一个 CyrCha
$('input').keyup(function(){ $('div').html($(this).val()); }); http://jsfiddle.net/NMqhW/
我正在使用 DirectX 11 用 C++ 编写一个程序,我希望它能够在用户按下 Ctrl-Alt-Del 或 Alt-Tab 时最小化我的程序。 让窗口本身最小化是比较容易的部分,因为我所要做的就
我最近开始使用 alt.js 重写 Flux & React 应用程序,这使我可以在从服务器渲染时轻松地使用数据引导应用程序。 除了在客户端分派(dispatch)操作时我无法触发我的存储方法之外,其
Windows 下的 Eclipse 有一个非常烦人的问题。当我按下 Right Alt+ key。这让我查看了键绑定(bind)列表并删除了 Ctrl+Alt+key 的所有绑定(bind),我认为
我无法弄清楚两者之间的区别: alts! 和 alt! 在 Clojure 的 core.async . 最佳答案 alts!是 功能 它接受要从中获取的 channel 向量和/或带有要放置在其上的
我是一名优秀的程序员,十分优秀!