使用 BeautifulSoup 解析网页时,怎么快速定位到想要的数据位置

2016-12-29 15:59:07 +08:00
 jiezhi
目前我是看网页源码找几个最近的标签试出来唯一性的,当然如果标签一些属性唯一还好说,不然就得多试几个,或者叠加搜索。

chrome 倒是带了复制元素选择器 /XPath ,但是 bs 好像还不支持直接使用,有谁有啥好的解决办法么?
2691 次点击
所在节点    Python
8 条回复
ty89
2016-12-29 16:08:08 +08:00
lxml 支持 xpath ,解析的效率也比 BS 高不少。
geew
2016-12-29 16:10:47 +08:00
pyquery
enenaaa
2016-12-29 16:14:39 +08:00
select('body > div > div > ul > li > span[class="cls1"]') 这样?
yanzixuan
2016-12-29 16:53:47 +08:00
@enenaaa 我就这么干的。但是 bs 版本低了不支持 span[class="cls1"]这样的写法, 蛋疼。
Lonely
2016-12-29 16:56:37 +08:00
生成 BS 对象时选择 lxml ,不要用默认的
cyrbuzz
2016-12-29 17:44:47 +08:00
bs 支持 css 语法吧,在 firefox 里复制唯一选择器(大部分情况下比 chrome 获取的短一些)。
把这个直接用 select 方法就可以获取到了。
用 html.parser 解析就可以。
jiezhi
2016-12-30 09:10:43 +08:00
@ty89
@geew
@enenaaa
@Lonely
@cyrbuzz

谢谢各位,我最近试一下解析,有什么好的方案我会 append 出来的
zhangsen1992
2016-12-30 11:35:17 +08:00
xpath lxml 最快

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/331031

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX