您的当前位置:首页正文

pyquery解析器无法获取标签名dom节点的解决方法

2020-11-27 来源:步旅网

本篇文章给大家带来的内容是关于pyquery解析器无法获取标签名dom节点的解决方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

作为一位正经的前端开发人员,在学习python的过程中,自然而然选择了pyquery这款解析器,毕竟和前端的jquery一样省去了很多学习的时间。
但是在使用过程中发现一个问题,pyquery竟然无法像jquery一样很方便的去筛选dom节点。
经过一番排查发现:对于class类名,pyquery依然可以方便的获取节点,但是当使用如:a,p,img...等原生标签时,无论如何都获取不到节点。
一度让我很奔溃...

罪魁祸首

<div xmlns="http://www.w3.org/1999/xhtml" class="image-item-inner" style="width: 398px; height: 598px;"><img src="http://p3.pstatp.com/origin/3f240001a4f84996876d"
 data-src="http://p3.pstatp.com/origin/3f240001a4f84996876d" alt="" /> <a href="http://p3.pstatp.com/origin/3f240001a4f84996876d"
 title="查看原图" target="_blank" ga_event="view_original_photo" class="image-origin"><i class="bui-icon icon-enlarge"
 style="font-size: 14px; color: rgb(255, 255, 255);" /></a></div>

其实问题就出在xmlns="http://www.w3.org/1999/xhtml"这里,pyquery默认解析后的文档是xmlns格式,而这种格式就是造成无法获取原生标签的原因。

 doc = pq(browser.page_source,parser="html")

解决方法就是在解析时配置parser="html",问题迎刃而解。

显示全文