Использование механизированного поиска Bing возвращает пустую страницу - PullRequest
0 голосов
/ 19 ноября 2010

Я использую Mechanize для выполнения поиска, а затем обработаю результаты красивым супом.Я успешно выполнил поиск в Google и Yahoo с помощью того же метода, но когда я выполняю поиск с помощью bing, все, что я получаю - это пустая страница.

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

from BeautifulSoup import BeautifulSoup
import mechanize
br = mechanize.Browser()
br.set_handle_robots(False)
br.open("http://www.bing.com/search?count=100&q=cheese")
content = br.response()
content = content.read()
soup = BeautifulSoup(content, convertEntities=BeautifulSoup.ALL_ENTITIES)
print soup

Результат - пустая строка.

1 Ответ

0 голосов
/ 19 ноября 2010

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

Вы также можете добавить код отладки и просмотреть заголовки, возвращаемые сервером:

br.open("http://www.bing.com/search?count=50&q=cheese")
response = br.response()
headers = response.info()
print headers
content = response.read()

РЕДАКТИРОВАТЬ:

Я пробовал этот запрос с count=100 в браузерах Firefox и Opera, и кажется, что bing не нравится такое "большое" количество.Когда я уменьшаю количество, тогда это работает.Так что это не механизация или другая ошибка библиотеки Python, но ваш запрос проблематичен для bing.Также кажется, что браузер может запросить bing с count=100, но сначала он должен запросить bing с некоторым меньшим количеством.Странно!

...