为什么只返回一个div元素?

2024-06-07 17:47:18 发布

您现在位置:Python中文网/ 问答频道 /正文

喂,我去这一页

https://www.reddit.com/r/starcraft/

保存它的源代码。然后按以下方式使用lxml

tree = etree.parse('redditsample.html', parser=etree.HTMLParser());
tree.xpath('//div')

这就是我得到的:

[<Element div at 0x7f185ac9f908>]

为什么我只能得到一个元素?如果你仔细研究源代码,就会发现有更多的div元素可用。为什么它们没有被解析

谢谢


Tags: httpsdivcomtree元素源代码parsehtml
1条回答
网友
1楼 · 发布于 2024-06-07 17:47:18

检查您保存的redditsample.html文件是否与https://www.reddit.com/r/starcraft/相同

reddit强制执行速率限制,因此如果您多次运行脚本,您可能会遇到这种情况。在这种情况下,您保存的redditsample.html文件可能只包含一条reddit消息,表示您达到了他们的速率限制,需要稍后重试您的请求

在不命中任何速率限制的情况下请求该URL,.xpath('//div')结果是429个节点:

>>> len(etree.fromstring(requests.get('https://www.reddit.com/r/starcraft/')
    .content, parser=etree.HTMLParser()).xpath('//div'))
429

相关问题 更多 >

    热门问题