无法使用BeautifulSoup查找特定的类组件

lim*_*ess 0 python beautifulsoup web-scraping

我正试图为影院网站制作一个刮刀,以收集电影名称列表.我试图使用BeautifulSoup来解析HTML文件,我看到每部电影都在一个名为的类中"movie-row".但是select在此类上使用该方法并未检索该站点的相应数据.我能够获得的HTML最接近的组件是父类.quickbook-section.

为什么有些HTML标签可以使用BS而其他不可用?

这是我写的代码.

def get_movies_names():
    url = "https://www.yesplanet.co.il/#/buy-tickets-by-cinema?in-cinema=1025&at=2018-11-09&view-mode=list"
    raw_html = util.simple_get(url)
    bs = BeautifulSoup(raw_html, 'html.parser')
    bs.select(".movie-row")
Run Code Online (Sandbox Code Playgroud)

(simple_get只是一个返回HTML响应内容的函数)

Jam*_*ott 5

似乎特定网站使用JavaScript呈现它的电影数据.

美丽的汤不是浏览器,因此没有DOM所以无法运行JavaScript代码.它所做的只是获取页面内容并解析它.如果您查看相关页面的来源并查看源代码(在大多数浏览器中右键单击"查看源代码")并搜索.movie-row您将发现没有匹配项.

在这种情况下,您将不得不找到一种替代数据的方法,尝试调查它使用的JavaScript代码并从那里开始.或者,您可能希望查看使用Selenium和PhantomJS.