如题,给个网页能不能实现自动提取,文章标题,文章正文,发布时间,来源等这些需要的内容。目前,我就是写正则来匹配和 XPath 来提取。可是很恶心。有没有什么好办法呢?各位大腿们
蟹蟹,目前有 X 千个源。后续可能还会有新的
1
tumb8r 2016-08-19 09:30:50 +08:00
title 好说,但是想正文、发布时间、来源等,每个源的标签是一样的吗?如果是一样的很好爬,如果不一样就需要针对每个源写规则,麻烦。
|
2
dsg001 2016-08-19 09:34:04 +08:00
https://github.com/vinta/awesome-python
有自动提取正文的库,但只能针对标准网页,如果太过杂乱也没辙 |
3
naomhan 2016-08-19 09:35:10 +08:00
正文还好说 标题 时间提取真的不容易 暂时没人研究 我们暂时是通过百度搜索相关新闻 因为百度搜索都结构化处理了 时间 标题获取就很容易
|
4
laoyur 2016-08-19 09:35:32 +08:00
用 readability
|
5
ququzone 2016-08-19 09:42:46 +08:00 2
看看我写的这个把 https://github.com/ququzone/smart-extractor
基于 Readability ,支持 Docker 的微服务 |
6
MarcoQin 2016-08-19 10:12:13 +08:00
python-goose 应该可以应付大多数标准的信息源。再配合部分 xpath 应该可以的
|
7
polythene 2016-08-19 10:45:34 +08:00 1
我之前做了一个应用,用来提取 hackernews 上新闻的正文,这是我用来提取的库 https://github.com/polyrabbit/hacker-news-digest/tree/master/page_content_extractor ,至少 hackernews 上 X 千的新闻源提取效果蛮好的。
|
8
cai72738 OP |
10
xhsmile 2016-08-19 11:24:21 +08:00
Python+ requests
接着写脚本 import requests html = requests.get(url).text print(html) 然后 re 解析? |
12
whahuzhihao 2016-08-19 12:10:18 +08:00
想起来 v 站以前见到过一个大神写的 貌似挺好
/t/270075 |
13
reyoung1110 2016-08-19 12:14:43 +08:00
groose
|
14
reyoung1110 2016-08-19 12:15:18 +08:00
|
15
ambw 2016-08-19 12:34:12 +08:00
boilerpipe 也不错,是我觉得最好用的
|
17
icybee 2016-08-19 13:59:46 +08:00 1
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 的算法 |
18
tianshiyeben 2016-08-19 14:37:17 +08:00
想自动提取的话,比较难,我前段时间写过提取新闻网站的正文。
实现自动提取标题,正文,发布时间 但是正文提取有误差,准确率大概 98%吧 可以参考下 https://github.com/tianshiyeben/draw |
19
cai72738 OP @tianshiyeben 大概看了你写的,标题,您好像直接取得 mata 里的 title ,在我这儿行不通。谢谢分享!
|
20
wowo2088 2016-08-19 14:57:21 +08:00
非标准网页很多,没有特别通用的方法,还是正则吧
|
21
Xname 2016-08-20 03:13:41 +08:00
这种情况当然是火车头了 C#来的 功能强大
|
22
guoruei 2016-08-20 03:59:49 +08:00
换个思路吧。你把一个站抓下来。
每页内容一样的是什么?是广告样式和导航。这个是有规律的。 不一样的是什么?是正文。它长短不一,还图文混排。 你只需把有规律的内容去掉就剩下正文了。 这。。。 |
23
FallenMax 2016-08-20 10:54:05 +08:00 via Android
我写了一个叫 smart toc 的 chrome 扩展(有同名 github ),用于抽取网页内容和标题等级。中间包含一个简单的内容抽取算法。可以试试效果如何~
(不过弊端是:这算法需要在浏览器上运行,因为依赖计算出的内容样式) |
24
madxzb 2016-08-20 12:12:38 +08:00
可参考我以前写的,网页正文提取算法研究[非正则]
http://xuzhibin.com/2010/11/11/text-extraction/ 我当时用 c #写的,参考思路即可。发布时间,列表页的内容链接块其实都可以按这个思路获取到。当然也不是 100%的。 |