пустой набор результатов прекрасный суп

Скребуйте статью с сайта New York Times и получите пустой набор результатов. Моя цель – получить URL-адреса и текст элементов h3. Когда я запускаю это, я получаю пустой набор. Печать раздела scrape показывает, что я на правильном пути … target url – http://query.nytimes.com/search/sitesearch/?action=click&contentCollection&region=TopBar&WT.nav=searchWidget&module=SearchSubmit&pgtype=sectionfront#/san+ диего / 24 часа

url = "http://query.nytimes.com/search/sitesearch/?action=click&contentCollection&region=TopBar&WT.nav=searchWidget&module=SearchSubmit&pgtype=sectionfront{data}" html = urlopen(url.format(data="#"+'/san+diego/24hours')) soup = BeautifulSoup(html.read().decode('utf-8'),"lxml") section = soup.find("ol",class_='searchResultsList flush') items = section.find_all('li', class_="story") print items 

One Solution collect form web for “пустой набор результатов прекрасный суп”

HTML действительно не содержит данных. На вкладке «Сеть» в инструментах разработчика Chrome вы можете увидеть, что результаты поиска извлекаются по запросу AJAX по этому URL-адресу: http://query.nytimes.com/svc/add/v1/sitesearch.json?q=san % 20diego & BEGIN_DATE = 24hoursago & фасет = истина

Вот скриншот об обнаружении:

введите описание изображения здесь

Вам нужно открыть Инструменты разработчика (попробуйте меню «Вид»), выберите вкладку «Сеть», перезагрузите страницу и осмотрите ее. XHR = XmlHttpRequest, который в наши дни называется запросом AJAX. Это означает, что некоторый Javascript задал сервер для данных.

Это JSON, поэтому вам действительно повезло, потому что это будет намного лучше, чем синтаксический анализ HTML.

  • Скремблирование таблицы с помощью BeautifulSoup
  • Не удается извлечь текст и найти все по BeautifulSoup
  • Может ли соскабливаться на этой странице, которая активно пересчитывается?
  • Python Скремблирование JavaScript с использованием Selenium и Beautiful Soup
  • Скребок экрана: обойти «Ошибка HTTP 403: запрос, запрещенный robots.txt»
  • Исключение нежелательных результатов findAll с помощью BeautifulSoup
  • Безглавой браузер для Python (поддержка Javascript НЕОБХОДИМА!)
  • Как визуализировать содержимое тега в юникоде в BeautifulSoup?
  • Python - лучший язык программирования в мире.