gpt4 book ai didi

python - 使用 lxml 和请求包抓取 IMDb 评论页面

转载 作者:太空宇宙 更新时间:2023-11-04 03:36:21 31 4
gpt4 key购买 nike

我想在 lxml 的帮助下提取特定电影的用户评论。在此之前,我需要先找出评论的数量。

示例评论页面是 Interstellar

我在 Firebug 的帮助下找到了可以找到用户评论的 XPath:

/html/body/div[1]/div/layer/div[4]/div[3]/div[3]/div[3]/table[2]/tbody/tr/td[2]

我有这个代码来提取那行

reviewPage = lxml.html.document_fromstring(requests.get("http://www.imdb.com/title/tt0816692/reviews?start=0").content)
number_of_reviews = reviewPage.xpath("/html/body/div[1]/div/layer/div[4]/div[3]/div[3]/div[3]/table[2]/tbody/tr/td[2]")[0]

但是,在打印评论数量时,我什么也得不到。问题是什么 ?

最佳答案

您可以使用以下行来提取评论数:

number_of_reviews = int(reviewPage.xpath("//div[@id = 'tn15content']/table[2]/tr/td[2]")[0].text_content().split()[0])

如果稍微修改一下,您甚至可以使用自己的代码。问题出在您的 XPath 上。去掉 tbody 部分,它就可以工作了。

number_of_reviews = reviewPage.xpath("/html/body/div[1]/div/layer/div[4]/div[3]/div[3]/div[3]/table[2]/tr/td[2]")[0]

您可能借助浏览器的开发人员工具获得了 HTML 的结构,这会添加 tbody,即使它不存在于 html 中。如果您直接通过View Source (Ctrl+U) 查看 HTML 文件,您会发现文件中没有 tbody

参见 Why does firebug add <tbody> to <table>?

关于python - 使用 lxml 和请求包抓取 IMDb 评论页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28873486/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com