大家都是怎么解析抓取到的 HTML 文件的?

2014-09-08 18:38:30 +08:00
 mthli
有的网站没有API接口,如果要想抓取数据的话就必须解析HTML自己提取内容了。

一般来说我会直接遍历,找到特定的标签(或者字符),然后再自己提取内容。如果标签比较多的话就觉得有点烦,毕竟写起来自己也麻烦。所以想问一下有没有什么更好的方法(或者是那种脑洞大开的方法)?
4998 次点击
所在节点    问与答
46 条回复
ccbikai
2014-09-08 20:54:29 +08:00
wwttc
2014-09-08 20:55:11 +08:00
正则,beautifulsoup,xpath,都可以。最方便的还是xpath
ceclinux
2014-09-08 23:02:34 +08:00
nodejs可以用jsdom
refresh
2014-09-08 23:07:07 +08:00
node.js + cherrio,jsdom太重了
zyx89513
2014-09-08 23:07:42 +08:00
beautifulSoup
Comdex
2014-09-08 23:09:57 +08:00
goquery
lightening
2014-09-08 23:13:45 +08:00
Ruby 的话就用 Nokogiri (鋸).
cxshun
2014-09-08 23:16:08 +08:00
xpath是最好的方案,正则的话就太麻烦了。但遇到不规范的html时,这也比较杯具了,只能先处理一下再用xpath。
txlty
2014-09-08 23:54:35 +08:00
那个。。难道说拆数组,很土很落后?
mthli
2014-09-09 07:23:15 +08:00
@txlty 不是呀,也很不错呀。
scola
2014-09-09 08:18:23 +08:00
python + lxml
RangerWolf
2014-09-09 09:19:45 +08:00
了解到有些比价软件的页面解析用的是正则~ 不过个人一直是Java + JSoup。 再加上xpath的话,不知道哪个效率更高一点~
djyde
2014-09-09 09:48:52 +08:00
看我V2HOT的第一个版本记录,用的是Jsoup。

https://github.com/djyde/V2HOT
ZzFoo
2014-09-09 10:21:28 +08:00
对了,配合火狐的Xpath Checker插件,可以检查你的表达式选取到的结果
binux
2014-09-09 10:31:52 +08:00
[如何从 WEB 页面中提取信息](http://blog.binux.me/2014/07/how-to-extract-data-from-web/)
miao
2014-09-09 10:42:00 +08:00
如果是抓取到本地(win环境) 请用火车头
mthli
2014-09-09 10:56:07 +08:00
@ZzFoo 嗯哼~
Yannis1990
2014-09-09 11:37:36 +08:00
pyquery +1
master
2014-09-09 11:39:01 +08:00
node.js + cherrio
bigtan
2014-09-09 11:41:09 +08:00
bs4

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

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

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

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

© 2021 V2EX