Как экранировать символы в YQL с помощью API ответа Yahoo? - PullRequest
2 голосов
/ 21 января 2012

Я использую API ответа Yahoo через YQL.Мой запрос "как приготовить бекон", и мне нужно включить двойные кавычки, потому что это точно соответствует, вы можете увидеть результаты отличаются в их веб-поиска:1005 *

Проблема в том, что я не могу избежать символов, которые я пробовал \" и пытался включить %22.Было просто интересно, есть ли другой метод, который будет работать?

Вот мой пример запроса без кавычек:

http://developer.yahoo.com/yql/console/?_uiFocus=answers&q=select%20*%20from%20answers.search%20where%20query%3D%22cars%22%20and%20category_id%3D2115500137%20and%20type%3D%22resolved%22#h=select%20*%20from%20answers.search%20where%20query%3D%22how%20to%20cook%20bacon%22%20and%20type%3D%22resolved%22

Ответы [ 2 ]

1 голос
/ 24 января 2012

Я думаю, что ответ Джоша был на правильном пути к исходной проблеме цитирования или экранирования запроса "Ответы", когда он проходит через YQL.Но, играя с этим дальше, я думаю, что настоящая проблема заключается в попытке дублировать результаты пользовательского интерфейса «Ответы» через API ответов (который, в свою очередь, читается YQL).

Я не могу сопоставить тот же наборрезультаты API ответов по сравнению с веб-сайтом ответов .Я думаю, что разница заключается в порядке сортировки по рангу, но, похоже, он не доступен в API.

В качестве альтернативы вы можете использовать RSS-каналы "Ответы" и обрабатывать их через YQL:

  1. Перейдите на answers.yahoo.com и введите пример поиска "Как приготовить бекон" .
  2. На странице результатов выберите ссылку RSS на левой стороне панели навигации.( пример )
  3. Используйте ссылку RSS вместе с модулем YQL "feed": select * from feed where url='http://answers.yahoo.com/rss/search?p=%22how+to+cook+bacon%22&scope=all&fltr=_en&question_status=all&date_submitted=all&category=0&answer_count=any&orderby=rank'

Вы должны получить результатыкак следующий первый результат, который, кажется, соответствует порядку, показанному в пользовательском интерфейсе:

<item>
  <title>Resolved Question: How to cook bacon?
  <link>http://answers.yahoo.com/question/index?qid=20070416221341AAkZArM
  <guid isPermaLink="true">http://answers.yahoo.com/question/index?qid=20070416221341AAkZArM
  <pubDate>Tue, 17 Apr 2007 5:13:41 GMT
  <description>
</item>

В этих результатах RSS объем данных представляет собой только сводку, но вы можете извлечь идентификатор вопроса, а затем использовать метод получения метода API для раскрытия всех деталей по каждому вопросу.

0 голосов
/ 22 января 2012

Вы можете использовать одинарные кавычки для вашего YQL-запроса, а затем поместить двойные кавычки в ваш контент, и YQL передаст двойные кавычки с данными в Ответы. Вот так:

select * from answers.search where query='"how to cook bacon"' and type='resolved'

возвращает следующий запрос к Ответы .

...