我目前正在使用以下 YQL 语句来抓取网站的页面内容。{EncodedURI}
我正在抓取的页面在哪里。例如:http%3A%2F%2Fstackoverflow.com
SELECT * FROM html WHERE url="{EncodedURI}"
对于大多数 URL,这工作得很好。XML 有效,我的应用程序继续。但是在某些 URL 上会返回无效的 XML。有趣的是,我发现导致此错误的一个 URL 是http://en.wikipedia.org/wiki/God。
我从查询中获取了原始响应并将其通过 XML 验证器并得到以下错误:
error on line 2 at column 6:XML declaration allowed only at the start of the document
似乎响应末尾附近的 XML 变得混乱,但我无法找到确切的问题。
有任何想法吗?
更新:
我在响应结束时更改了 XML:
</body></results></query>>!-- Stotal: 288-->
<!-- Lengine9.yql.ac4.yhouocolm-->
<
到
</body></results></query><!-- Stotal: 288-->
<!-- Lengine9.yql.ac4.yhouocolm-->
我可以相当轻松地让我的应用程序修改 XML 以使其正常工作,但显然该解决方案并不理想。有人知道如何避免这个问题吗?