【问题标题】:Web Scraping LXML and requestsWeb Scraping LXML 和请求
【发布时间】:2018-10-21 03:37:16
【问题描述】:

我刚刚开始学习如何使用 LXML 和请求进行网络抓取。我想编写一个应用程序,它可以告诉我特定电影院正在放映什么电影。

movie list

这是我的代码:

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)

但是,打印的输出什么都没有,据我了解,这意味着它找不到目录。

【问题讨论】:

    标签: python python-3.x python-requests lxml python-3.7


    【解决方案1】:

    您不能对动态页面使用简单的请求和解析库。

    注意页面主要有两种,分别是:

    • 静态页面是人类可读的纯文本,通常采用 html、xml、json 等格式。
    • 动态页面是通过异步请求“即时”构建的页面。

    在谷歌浏览器的开发者工具>网络中,您可以查看构建页面的请求。

    例如,que 可以找到此链接:https://www.eventcinemas.com.au/Cinemas/GetSessions?cinemaIds=86。很多时候,当你想从一个网站查询一些信息时,有一种比解析(脏)html更简单的方法。

    但是,当您除了阅读页面没有其他选择时,您需要将其模拟为任何浏览器。为此,有一些库作为 selenium webdriver,https://pypi.org/project/selenium/,虽然对于 RAM 和时间来说非常繁重。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-14
      • 2021-09-04
      • 1970-01-01
      • 2018-07-08
      • 1970-01-01
      • 1970-01-01
      • 2020-02-29
      • 2021-05-06
      相关资源
      最近更新 更多