2013-07-15 2 views
2

Я пишу программу, которая извлекает данные из веб-поиска. Чтобы получить больше данных, мне бы хотелось получить больше результатов за запрос (скажем, около 100).Получение большего количества результатов поиска на страницу по URL-адресу

Мой вопрос в том, есть ли способ изменить URL-адрес для Google, Yahoo или Bing (предпочтение в этом порядке), чтобы я мог получить более 10 результатов для каждого запроса?

Для Google, добавив &num=99 привыкли работать в одной точке, но больше не работает :( я видел подобную Append из &count=50, но это не работает ни на одном из поисковых систем либо.

+0

Этот вопрос относится к [Web Applications SE] (http://webapps.stackexchange.com/). – unor

ответ

1

Я не» t знать, какой язык программирования вы используете, но общая идея заключается в загрузке страницы поиска Google с правильными настройками cookie (то есть, как они хранятся на момент написания этой статьи).

Вы можете установить, а затем просмотрите файлы cookie в Google Chrome. Чтобы избежать ненужных файлов cookie, начните с открытия нового окна инкогнито (Ctrl + Shift + N) и переход к настройкам поиска (https://www.google.com/preferences).

На момент написания статьи вы хотите проверить «Никогда не показывать мгновенные результаты», а затем настроить ползунок «Результаты на страницу» на любое значение, которое вы хотите. После нажатия «Сохранить» внизу вы можете просмотреть свои файлы cookie, открыв консоль разработчика (Ctrl + Shift + 10 J) и перейдите на вкладку ресурсов.

Снова, на момент написания, Google устанавливает две переменные: NID и PREF. PREF - это тот, который нас интересует, чтобы изменить результаты поиска. Пример того, что она может выглядеть следующим образом:

ID=8155cce71859f7d0:U=fe6e69e174148b7b:FF=0:LD=en:NR=40:TM=1379366492:LM=1379366586:SG=2:S=FoybwBhek8noyp0t 

(Эта кнопка выбирает 40 результатов, как указано на NR=40)

С помощью этого ключа (PREF) и значение для него (как показано выше), вы можете отправить cookie при запросе страницы через , и т. д. В моем последнем проекте, связанном с этим, я использовал с requests library.

Вот отрывок о том, как вы можете идти о выборке страницы Google с 40 результатами (модифицированный пример из документации запросов):

var j = request.jar(); 
var cookie = request.cookie('PREF=ID=8155cce71859f7d0:U=fe6e69e174148b7b:FF=0:LD=en:NR=40:TM=1379366492:LM=1379366586:SG=2:S=FoybwBhek8noyp0t'); 
j.add(cookie); 
request({url: 'https://www.google.com/search', jar: j}, 
function(error, response, body) { 
    // do something with the body (html) of the page! 
}); 

Или взглянуть на человека страниц для Wget/локон. Я знаю, что wget указывает флаг --load-cookies, который вы можете использовать.

Вы можете применить это к любому другому веб-сайту на основе файлов cookie, в котором вам нужен контент. Yahoo! использует настройки на основе файлов cookie - я не уверен, что использует Bing.

1

Добавить &n=100 в ссылки. Получить страницу 100 результатов

5

Причина, по которой num=99 не работает для Google, потому что фактическое значение параметра num не используется, но вместо этого по сравнению со списком разрешенных значений.

Допустимые значения: 10, 20, 30, 40, 50 и 100. Любые другие значения для этого поля игнорируются.

Для Bing параметр count=##, где ## может быть любым, от 1 до 100.

Для Yahoo параметр n=## где ## может быть любым, от 1 до 100.

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

+1

не работает на Bing больше –

+1

я просто тестировал с некоторыми случайными числами, и она работала отлично: http://www.bing.com/search?q=cats&count=1 http://www.bing.com/search? q = cats & count = 13 http://www.bing.com/search?q=cats&count=75 – Hiteklife

+1

Uo, вы правы! Он работает только для меня на «частной вкладке», а не в моей открытой сессии. Может быть, печенье. Спасибо за проверку снова. –

 Смежные вопросы

  • Нет связанных вопросов^_^