首先,我知道我可以使用以下网址获取网页的HTML
file_get_contents($url);
我要做的是在页面中找到一个特定的链接元素(在头部找到)。
e.g:
<link type="text/plain" rel="service" href="/service.txt" /> (the element could close with just >)
我的问题是:我如何获得“rel”属性等于“service”的特定元素,以便获得href?
我的第二个问题是:我是否也应该获得“基础”元素?它适用于“link”元素吗?我试图遵循标准。
此外,html可能有错误。我无法控制用户如何编写代码。
答案 0 :(得分:3)
使用PHP的DOMDocument
,这应该做(未经测试):
$doc = new DOMDocument();
$doc->loadHTML($file);
$head = $doc->getElementsByTagName('head')->item(0);
$links = $head->getElementsByTagName("link");
foreach($links as $l) {
if($l->getAttribute("rel") == "service") {
echo $l->getAttribute("href");
}
}
答案 1 :(得分:0)
你应该得到Base元素,但要知道它的工作原理和范围。
事实上,当我必须进行屏幕刮擦时,我使用的是phpquery。这是一个较旧的jQuery PHP端口...而这听起来像是一个愚蠢的概念,它对于文档遍历来说非常棒......并且不需要格式良好的XHTMl。
答案 2 :(得分:0)
我正在使用Java下的Selenium进行Web应用程序测试。它为使用CSS-Selectors的文档遍历提供了非常好的功能。
查看How to use Selenium with PHP 但是,如果您只想提取此链接,则此设置可能会使您的需求变得复杂。