2

現在、次の YQL ステートメントを使用して、サイトのページ コンテンツをスクレイピングしています。{EncodedURI}スクレイピングしているページはどこですか。例: http%3A%2F%2Fstackoverflow.com

SELECT * FROM html WHERE url="{EncodedURI}"

ほとんどの URL では、これで問題なく機能します。XML は有効で、アプリケーションは続行されます。ただし、一部の URL では無効な XML が返されます。興味深いことに、私が発見したこのエラーの原因となる URL の 1 つは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 を簡単に修正して動作させることはできますが、明らかにそのソリューションは理想的ではありません。この問題を回避する方法を知っている人はいますか?

4

1 に答える 1

1

firefox でエラーが表示されます。これを回避するためにできることは、JSON 応答を要求することです。&format=jsonREST 呼び出しに追加するだけです。例:これを試してください。少なくとも、フィードが解析されていないことを心配する必要はありません。繰り返しますが、これは理想的ではありませんが、うまくいくはずです。

于 2012-12-21T22:46:47.747 に答える