pythons lxml.html,一次抓取所有
使用lxml.html,我能够使用pid获取数据pythons lxml.html,一次抓取所有,python,lxml.html,Python,Lxml.html,使用lxml.html,我能够使用pid获取数据 fromstring(source).xpath('/html/body/article/section/div[1]/div[2]/p[2]')[0]。get('data-pid') 但是,它只返回其中一个(在本例中为4559733570)。我记得我能一次抓到所有的东西,但我不记得怎么抓到的。谁能给我指一下正确的方向吗 HTML代码如下所示: xpath,直接返回所有值 假设您关心所有p元素中的属性数据pid: >>> fro
fromstring(source).xpath('/html/body/article/section/div[1]/div[2]/p[2]')[0]。get('data-pid')
但是,它只返回其中一个(在本例中为4559733570)。我记得我能一次抓到所有的东西,但我不记得怎么抓到的。谁能给我指一下正确的方向吗
HTML代码如下所示:
xpath,直接返回所有值
假设您关心所有p
元素中的属性数据pid
:
>>> fromstring(source).xpath("//p/@data-pi")
将返回所需内容。从png和xpath查询中,您感兴趣的所有
元素似乎都嵌套在相同的
中。xpath查询/html/body/article/section/div[1]/div[2]/p[2]
将只返回所选div中的第二个
元素([2]
)。如果要在div中显示所有段落,请使用/html/body/article/section/div[1]/div[2]/p
[ p.get("data-pid") for p in fromstring(source).xpath('/html/body/article/section/div[1]/div[2]/p') ]
仍然打印第一个元素only@user42992我通过删除最后一个索引修改了xpath,并添加了另一个xpath选择器,它可能会选择您需要的内容(全部为“p”)元素具有
数据pid
@user42992最终我将解决方案简化为单个xpath。我明白了您的意思。我得到了错误AttributeError:“list”对象没有属性“get”
太好了!我修复了代码,粘贴时忘了删除.get。