Web Scraping LXML и запросы - PullRequest
       53

Web Scraping LXML и запросы

0 голосов
/ 21 октября 2018

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

Список фильмов .

Вот мой код:

import requests
from lxml import html

# Getting the Page
HTML = requests.get('https://www.eventcinemas.com.au/Sessions#cinemas=86')
doc = html.fromstring(HTML.content)

# Getting the Movie
path1 = doc.xpath('//div[@class="body-content"]')[0]
path2 = path1.xpath('.//div[@class="content"]')[0]
path3 = path2.xpath('.//div[@id="first-dates"]')[0]
path4 = path3.xpath('.//div[@class="split-content"]')[0]
path5 = path4.xpath('.//div[@id="session-list"]')[0]

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

<div class="movie-container list-view"...

Я тоже пробовал это, но это не дает мне никакого значения:

path6 = path5.xpath('.//div[@class="movie-container list-view"]')
print(path6)

Однако,вывод от печати - ничто, и, насколько я понимаю, это означает, что он не может найти каталог.

1 Ответ

0 голосов
/ 21 октября 2018

Нельзя использовать библиотеки простого анализа электронных запросов для динамических страниц.

Обратите внимание, что в основном существует два типа страниц, а именно:

  • Статические страницы - это простой читаемый человеком текст, обычно форматированный с помощью html, xml, json и т. Д.
  • Динамические страницы - это страницы, построение которых выполняется "на лету" с асинхронными запросами.

В Google Chrome, в инструментах разработчика> сеть, вы можете просмотреть запросы, которые были сделаны для создания страницы.

Там, например, que может найти эту ссылку: https://www.eventcinemas.com.au/Cinemas/GetSessions?cinemaIds=86.Очень часто, когда вы хотите запросить некоторую информацию с веб-сайта, существует более простой способ, чем разбор (грязный) HTML.

Однако, когда у вас нет другого выбора, кроме чтения страницы, вам необходимо смоделироватьэто как любой браузер.Для этой цели существуют библиотеки, такие как Selen Webdriver, https://pypi.org/project/selenium/,, но очень тяжелые для оперативной памяти и времени.

...