自动提取网页内容

2016-08-19 09:19:51 +08:00
 cai72738

如题,给个网页能不能实现自动提取,文章标题,文章正文,发布时间,来源等这些需要的内容。目前,我就是写正则来匹配和 XPath 来提取。可是很恶心。有没有什么好办法呢?各位大腿们


蟹蟹,目前有 X 千个源。后续可能还会有新的

7464 次点击
所在节点    Python
24 条回复
tumb8r
2016-08-19 09:30:50 +08:00
title 好说,但是想正文、发布时间、来源等,每个源的标签是一样的吗?如果是一样的很好爬,如果不一样就需要针对每个源写规则,麻烦。
dsg001
2016-08-19 09:34:04 +08:00
https://github.com/vinta/awesome-python
有自动提取正文的库,但只能针对标准网页,如果太过杂乱也没辙
naomhan
2016-08-19 09:35:10 +08:00
正文还好说 标题 时间提取真的不容易 暂时没人研究 我们暂时是通过百度搜索相关新闻 因为百度搜索都结构化处理了 时间 标题获取就很容易
laoyur
2016-08-19 09:35:32 +08:00
用 readability
ququzone
2016-08-19 09:42:46 +08:00
看看我写的这个把 https://github.com/ququzone/smart-extractor
基于 Readability ,支持 Docker 的微服务
MarcoQin
2016-08-19 10:12:13 +08:00
python-goose 应该可以应付大多数标准的信息源。再配合部分 xpath 应该可以的
polythene
2016-08-19 10:45:34 +08:00
我之前做了一个应用,用来提取 hackernews 上新闻的正文,这是我用来提取的库 https://github.com/polyrabbit/hacker-news-digest/tree/master/page_content_extractor ,至少 hackernews 上 X 千的新闻源提取效果蛮好的。
cai72738
2016-08-19 11:03:27 +08:00
@polythene 除了大段正文的提取,那新闻来源和发布时间,也是需要精确匹配出来的。还有最难搞的新闻 URL
@tumb8r 还就真的不一样,而且我现在也就在对每个源写规则,恼死了。
cai72738
2016-08-19 11:03:52 +08:00
@MarcoQin 标准信息源很少,大部分都是不标准的
xhsmile
2016-08-19 11:24:21 +08:00
Python+ requests
接着写脚本
import requests
html = requests.get(url).text
print(html)
然后 re 解析?
cai72738
2016-08-19 11:28:03 +08:00
@xhsmile 上千的源,不大可能一个一个写正则。所以就想有没有能自动生成网页对应的正则的库
whahuzhihao
2016-08-19 12:10:18 +08:00
想起来 v 站以前见到过一个大神写的 貌似挺好
/t/270075
reyoung1110
2016-08-19 12:14:43 +08:00
groose
reyoung1110
2016-08-19 12:15:18 +08:00
ambw
2016-08-19 12:34:12 +08:00
boilerpipe 也不错,是我觉得最好用的
cai72738
2016-08-19 13:58:04 +08:00
@ambw 那个只有标题和正文,我看源码,看能不能提取出其他信息
icybee
2016-08-19 13:59:46 +08:00
1. python-readability
https://github.com/buriy/python-readability

2. newspaper3k
https://github.com/codelucas/newspaper

3. readabilityBUNDLE
https://github.com/srijiths/readabilityBUNDLE

4. Dragnet
https://github.com/seomoz/dragnet

5. Diffbot
http://www.diffbot.com/products/automatic/article/

各种工具都借鉴了比较多的算法,其中原始的 readability ( 1 )是被一个叫 Pocket 的 app 商业化使用的,应该还可以;第 3 个 BUNDLE 是综合了三种基于 readability 的算法;第 5 个是基于 CV 的算法
tianshiyeben
2016-08-19 14:37:17 +08:00
想自动提取的话,比较难,我前段时间写过提取新闻网站的正文。
实现自动提取标题,正文,发布时间
但是正文提取有误差,准确率大概 98%吧

可以参考下

https://github.com/tianshiyeben/draw
cai72738
2016-08-19 14:52:02 +08:00
@tianshiyeben 大概看了你写的,标题,您好像直接取得 mata 里的 title ,在我这儿行不通。谢谢分享!
wowo2088
2016-08-19 14:57:21 +08:00
非标准网页很多,没有特别通用的方法,还是正则吧

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

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

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

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

© 2021 V2EX