0

我正在尝试从 IMDB 移动网站获取电影的持续时间以供个人使用,并将其添加到 Google 表格中。让我们以这个 URL m.imdb 为例,正如您在标题下方看到的那样,有电影规格。我检查了 HTML,我正在寻找的是:

    <time itemprop="duration" datetime="PT94M">
                94 min
    </time>

我尝试了很多 XPath,例如:

=IMPORTXML(M8;"...")


 1. //*[@id="titleOverview"]/div[2]/div/p/time
 2. //*[@itemprop='duration']
 3. /html/body/div[1]/div[2]/div[1]/div[1]/section[1]/div[2]/div/p/time
 4. //time[@itemprop='duration']

和许多其他人,但似乎我做错了什么,因为每次细胞返回#N/A

我对评级做了同样的事情,如下所示:

<span class="inline-block text-left vertically-middle">8,6<small class="text-muted">/10<br>109.569</small></span>

=IMPORTXML(M9;"//span [@class='inline-block text-left vertically-middle']")

一切都很完美。

4

3 回答 3

2

您可以使用以下方法获取长度:

=regexextract(concatenate(IMPORTXML("http://m.imdb.com/title/tt2096673/","//p[1]")),"(\d+ min)")

或者如果您使用分号代替:

=regexextract(concatenate(IMPORTXML("http://m.imdb.com/title/tt2096673/";"//p[1]"));"(\d+ min)")
于 2016-02-25T02:10:07.043 回答
1

Aurielle Perlman答案的一个更简单的替代公式

创建一个新工作表,然后添加以下内容:

单元格 A1:http://m.imdb.com/title/tt2096673/
单元格 A2://p
单元格 A3 公式:=Index(importxml(A1,A2),1,3)
单元格 A3 显示值/结果:95 min


引用源的问题在于它不遵循 XHTML 规则:第一个 p 元素包含一个未关闭的元标记。以下 HTML 是使用来自http://m.imdb.com/title/tt2096673/的 Chrome 开发者控制台提取的

<p class="infobar ellipse">


        <meta itemprop="contentRating" content="PG">PG



                &nbsp;<span class="ghost">|</span>&nbsp;
            <time itemprop="duration" datetime="PT95M">
                95 min
</time>
                &nbsp;<span class="ghost">|</span>&nbsp;
<span class="itemprop" itemprop="genre">Animation</span>, <span class="itemprop" itemprop="genre">Adventure</span>, <span class="itemprop" itemprop="genre">Comedy</span>
    </p>

请注意,根据 XHTML 规则,元标记未正确关闭。这就是为什么问题中包含的 xPath 查询不起作用的原因。

进一步阅读:

于 2016-05-26T03:54:04.717 回答
-1

我用这个来评价 imdb

=importXml(I2, "//div[@class='imdbRating'][1]" )

I2 是电影的链接

于 2018-03-25T16:56:07.840 回答