机器学习生成 xpath,进行通用爬虫

2017-12-22 19:20:12 +08:00
 mains

做通用爬虫,现在的正文提取已经很稳了 95%以上的正文提取率可以实现. (通用提取和 xpaht,css 等选择器)

但是为了更精确,对某域名或类型网站下,进行随机抽取 10-20 个网页。

用上述正文抽取的 content, 和原网页 html.

进行学习,然后推测出 xpath 之类。生成 xpath 配置项.

目标:以 95%的成功率实现 99.99%的成功率.

老哥们有好的思路么?@binux

参考:

3853 次点击
所在节点    Python
14 条回复
binux
2017-12-22 20:57:44 +08:00
机器学习个蛋啊,选择器总共能用的特征就 class,ID,属性那么几个,多个页面比对,组合一下选个最好的就完了
TimePPT
2017-12-22 22:13:42 +08:00
@binux 哈哈哈,正解
droiz
2017-12-22 22:15:10 +08:00
这年头怎么什么都机器学习啊。
ihciah
2017-12-22 22:23:50 +08:00
别喷机器学习啊,都是工具,有用就行,多搞点数据即使直接丢特征进 svm 也比手动写规则省事,精确。
除了一楼提到的几个特征,渲染后对应的位置、面积、长宽比,还有单词 /字符数之类的,应该也是很好的辅助。
geofvt
2017-12-22 23:21:08 +08:00
据我观察,大部分新闻网站,一个标签下有大段文字,或者有很多样式一致(指字体)的标签包裹小段文字
cross4future
2017-12-22 23:24:25 +08:00
html 头部尾部清洗+文本密度
以前我们公司是这么做的
mogging
2017-12-23 08:26:09 +08:00
xpath 处理 js 还是很麻烦
ZSeptember
2017-12-23 10:10:09 +08:00
前公司做过用文本密度,准确率 95 以上。gayhub 上有个 node 的实现,准确率很高,但是性能稍微差点,要用 JSdom 渲染一遍。
scriptB0y
2017-12-23 11:09:26 +08:00
目前我用过最好的是印象笔记的 Chrome 剪藏插件。。。

话说很多网站根本不靠谱的。class id 属性不太好使(参见极端例子: https://www.kawabangga.com/posts/2240 )文本密度好一些
mains
2017-12-23 11:24:36 +08:00
@scriptB0y 目前我的比印象笔记的 Chrome 剪藏插件识别率更好。因为我是组合通用抓取和 xpath 规则等。
mains
2017-12-23 11:45:28 +08:00
现在是可以根据文本内容自动推算出正文区域,设置 xpath 是更精确一点,不设置也行。(正常提取和 headless 等)

也设计了可视化的 xpath 提取工具,然后写入配置项,一个站 20s 左右。

现在就想人工介入的更少。
Draplater
2017-12-23 11:47:42 +08:00
@binux 不同网站的 class id 属性不一样
fish267
2017-12-23 14:20:50 +08:00
楼主有没有写过 React 网站的爬虫, 感觉维护特别费劲
voidtools
2017-12-31 01:19:53 +08:00
@mains 求此工具入口

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

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

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

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

© 2021 V2EX