Разбирать данные в окне ответов Google?

Вот гугл's Answer Box

Украдены из Вот.

Я хотел бы иметь возможность получить содержимое из этого окна и с помощью PHP. Я хотел бы знать, что вы все думаете, если бы я использовал php Simple HTML DOM Parser(как этот пример), или используйте Функция пользовательского поиска Google. Я специально пытаюсь достать данные из этой «коробки» и хотел бы знать, что думает сообщество.

РЕДАКТИРОВАТЬ!!! Я также хотел бы добавить, что я буду использовать функцию «определить:» (после слова) Google. Поскольку словарь Google больше не поддерживается, я хотел бы использовать эту функцию.

Спасибо за вашу помощь!!!

1

Решение

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

Прежде всего, я внедряю jQuery. Это потому, что я использую node.js и эмулятор квази-dom, но любой механизм выбора на другой платформе, очевидно, будет работать.

(function(){
var newscript = document.createElement('script');
newscript.type = 'text/javascript';
newscript.async = true;
newscript.src = 'https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js';
(document.getElementsByTagName('head')[0]||document.getElementsByTagName('body')[0]).appendChild(newscript);
})();

Я обнаруживаю прямые ответы как это:

$('#center_col').find("[role='heading']").children('div').first().text()

Другой распространенный тип карта как вы дали пример выше. Я предполагаю, что мог бы быть шаблон элемента / атрибута, который мог бы быть работоспособным, как метод выше, но я понял, что намного легче следовать за аспектами дизайна элементов, так как все атрибуты скремблированы, и определенные эстетики менее вероятны сменить ИМО.

$('#center_col').find('div').filter(function() {
return $(this).css('box-shadow') == "rgba(0, 0, 0, 0.2) 0px 1px 4px 0px";
}).find('span').first().text()

Удачи!

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]