Php DOMCrawler纯文本
我正在使用Symfony的DomCrawler从网站获取信息。Php DOMCrawler纯文本,php,html,symfony,xpath,Php,Html,Symfony,Xpath,我正在使用Symfony的DomCrawler从网站获取信息。 其中一个页面中有一个包含非html编码属性的文本,如下所示: <a href="some-url.html">Lorem ipsum <<dolor sit>> amet </a> 因此,我的问题是,是否有任何方法可以从节点中获取“纯”文本?我认为您要查找的内容可以通过以下方式完成: $node->filterXPath('my-xpath/a')->text() 您可以在上找到文档
其中一个页面中有一个包含非html编码属性的文本,如下所示:
<a href="some-url.html">Lorem ipsum <<dolor sit>> amet </a>
因此,我的问题是,是否有任何方法可以从节点中获取“纯”文本?我认为您要查找的内容可以通过以下方式完成:
$node->filterXPath('my-xpath/a')->text()代码>
您可以在上找到文档。在GitHub上讨论了这个问题后,似乎没有“修复”我的问题的解决方案。唯一的解决办法是修复损坏的html
所以,我的问题是,是否有任何方法可以从节点中获取“纯”文本
是的,有,但是您需要首先修复HTML。你不需要手工操作,顺便说一句,它会自动完美地处理你的案件
在抓取HTML之前,请先整理一下。谢谢您的回复,我好像忘了提到$node->text()
方法也会返回一个损坏的HTML。在我的例子中,它只是返回Lorem Ipsum谢谢你的回复,但在我的例子中它不起作用,因为正如我在描述中所说的,我正在使用symfony的domclawler模块,当我获取页面时,它已经“修复”。此外,如果你说要修复源代码(数据从中爬行的网站),那么它也不是一个解决方案,因为这个网站不是我的,我只是为它编写了一个应用程序,从那里抓取公告,并显示从哪里获取的(这里没有版权问题;)),如果我只是尝试向他们发送反馈以解决问题,这是没有意义的,因为网站本身没有维护很长一段时间,并且包含大量的bug…你可以在加载源代码时修复它。不是在他们的服务器上,而是在进行解析时。例如,使用我命名的tidy扩展名。我试了一下,你要求的方式很容易处理你的案子。你会发现答案中有联系很抱歉,如果答案还不清楚的话。如果您仍然遇到问题,请告诉我,或者我如何在回答中更清楚地说明这一点。
<a href="some-url.html">Lorem ipsum ></a>