2024-04-26 08:14:54 发布
网友
我正在尝试废弃站点ketabejam.ir 我使用python3.4.1,解析使用lxml3.4.1 顺便说一下,我用lxml.html.fromstring方法 当我在我的解释器上加载文档并请求以下查询以获取页数时,我可以处理分页:
s = doc.xpath("//*[@id='page']")
令人惊讶的是,我得到的结果是:
我从firebug的最小xpath得到元素的地址, 当我选择普通xpath时,查询运行顺利 是虫子,还是我做错了什么??在
通常,您可以通过以下方式解决此问题:
s = doc.xpath("(//*[@id='page'])[1]")
…如果您知道您只需要匹配的第一个节点,并且可以安全地忽略任何后续节点(在本例中这似乎是一个安全的赌注)。在
查看链接页面的页面源代码,页面中正好有两个元素id。最有可能是桌子上的那个,和桌子下面的那个。在
id
firebug的副本minimalxpath版本基于元素的id工作。它只适用于具有id标记的元素,并且它以以下格式创建xpath-
minimal
//*[@id="elementID"]
这就是你得到的。在
{{cd1>页面上应该只有一个元素。似乎firebug的最小xpath依赖于此。在
firebug
在您的上下文中,我认为这两个元素都返回相同的链接,因此您可以使用其中一个继续进行刮取。或者,正如您所指出的,您可以使用普通的xpath。在
通常,您可以通过以下方式解决此问题:
…如果您知道您只需要匹配的第一个节点,并且可以安全地忽略任何后续节点(在本例中这似乎是一个安全的赌注)。在
查看链接页面的页面源代码,页面中正好有两个元素
id
。最有可能是桌子上的那个,和桌子下面的那个。在firebug的副本
minimal
xpath版本基于元素的id
工作。它只适用于具有id
标记的元素,并且它以以下格式创建xpath-这就是你得到的。在
{{cd1>页面上应该只有一个元素。似乎
firebug
的最小xpath依赖于此。在在您的上下文中,我认为这两个元素都返回相同的链接,因此您可以使用其中一个继续进行刮取。或者,正如您所指出的,您可以使用普通的xpath。在
相关问题 更多 >
编程相关推荐