这么多搞爬虫的,有木有直接解析 HTML 的呀?

2015-11-02 16:02:35 +08:00
 est
突然想到一个问题,大家都是先正文提取成纯文本,再做 NLP 什么的,但是实际上,格式化富文本有很多重要信息,比如斜体,粗体,这些是不是都被忽略了?
7558 次点击
所在节点    Python
39 条回复
gdm
2015-11-02 16:06:13 +08:00
富文本,这不就是 beautiful soup 做的事吗?
master13
2015-11-02 16:07:14 +08:00
还要爬和解析那么多 CSS !一头撞死在豆腐上算了……
chairuosen
2015-11-02 16:08:56 +08:00
斜体粗体有啥用。
你应该想表达的是识别 h1 strong 这样有语意的标签吧?
一般 python 写的爬虫都是爬特定目标网站的,不用分析 HTML 你就知道你想要什么。
要分析 HTML 语意的爬虫是类似 Google 那种,不知道爬的网站长什么样的。
iyaozhen
2015-11-02 16:12:02 +08:00
赞同楼上,楼主说的还是偏向搜索引擎的爬虫,场景不一样。
skylancer
2015-11-02 16:12:22 +08:00
撸主先想想 hp 客户端嘛- -
skylancer
2015-11-02 16:12:43 +08:00
...才看到是 Py 区..
domty
2015-11-02 16:14:35 +08:00
那样解析还不如干脆用 phantomjs
鬼知道页面的 js 会不会在加载时修改页面的 css 样式
nilai
2015-11-02 16:17:48 +08:00
xpath
dong3580
2015-11-02 16:18:01 +08:00
@master13
存正文 html ,然后自己手动配自己的样式嘛。
tonyVex
2015-11-02 16:26:06 +08:00
只把正文解析出来吧。它的 css , js 需要吗?
est
2015-11-02 16:31:24 +08:00
@chairuosen 只是一个想法,可能没用。但是我觉得信息量丢了。。。

首先,当然,语义是很重要的一个方面。比如 <code> 里是代码,就知道这一定是个码农发的贴子。。。。

再比如论坛里一些帖子,有些内容,发帖人喜欢 红七醒目 。。比如做主题归纳,感觉因该提高重点文字的权重。而不是纯文本那样所有字符平等对待。

只是一个粗略想法。。。。。我知道有不实际的地方。。。乃们就不要喷我不实际了。。。


我的脑洞就是, NLP 是自然语言处理,那么 HLP 算不算超文本处理。。。。
anexplore
2015-11-02 16:34:33 +08:00
渲染以后可以得到更多信息,比如位置、字体大小等等,抽取起来当然更准确;但是渲染网页还是很费时的。
chairuosen
2015-11-02 16:35:31 +08:00
@est 你要是想用 python 写一个通用的爬虫,确实应该这么做。 什么 NLP HLP 我就不懂啦
est
2015-11-02 16:37:43 +08:00
@iyaozhen
@chairuosen
@anexplore

我想知道业界有没有一些比较好的 case 。

脑洞一下,比如很多时候读到 nytimes 的文章,一些亮点主题词语是 斜体 的。有木有一个搜索引擎能统计一下:“ NYTimes 斜体名词的分类”。。。。。。。。。。这里面涉及到爬虫,数据处理,清洗,如何索引富文本。。。感觉脑细胞不够用了。希望看到有别人的案例我来抄袭一下 hahahaha
est
2015-11-02 16:40:12 +08:00
@chairuosen 不是通用不通用的问题,而是爬出不仅要保留文字本身的信息量,还要保留当时标题,段落。排版,展现格式,甚至页面环境等信息量。

虽然我估计 99% 的页面,都是一种字号不分大小写不分段落标题格式通吃,但是总有那么一些出彩的页面,很注重行文的附加信息。
chairuosen
2015-11-02 16:51:30 +08:00
@est 我们以前是解析后的文本存一份,解析前的 Html 存一份,以备不时之需
wlee1991
2015-11-02 16:57:09 +08:00
TFHpple
verydxz
2015-11-02 17:30:15 +08:00
语义网?
hooopo
2015-11-02 20:52:59 +08:00
这个不难吧,抓取之后用 nokogiri 之类 lib 把 html 转化成 doc 对象,然后用 elastic 以 html 标签为 field 建索引,

比如,想找<strong>标签里包含 xxx 的 page 就是一个 in field 查询。
est
2015-11-02 20:59:24 +08:00
@hooopo 我还以为去了隔壁 rubychina 。。。哈哈。用 ES 的确可以做到。赞。

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

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

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

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

© 2021 V2EX