29回答

12收藏

新闻网站通用抽取器GNE v0.04版更新,支持提取正文图片与源代码

信息分享 信息分享 12051 人阅读 | 29 人回复 | 2019-11-26


GeneralNewsExtractor(以下简称 GNE)是一个新闻网页通用抽取器,能够在不指定任何抽取规则的情况下,把新闻网站的正文提取出来。





我们来看一下它的基本使用方法。

安装 GNE
使用 pip 安装:
bash pip install --upgrade git+https://github.com/kingname/GeneralNewsExtractor.git
当然你也可以使用 pipenv 安装:
bash pipenv install git+https://github.com/kingname/GeneralNewsExtractor.git#egg=gne
获取新闻网页源代码
GNE 现在不会,将来也不会提供网页请求的功能,所以你需要自行想办法获取经过渲染以后的网页源代码。你可以使用 Selenium 或者 Pyppeteer 或者直接从浏览器上复制。

这里演示如何直接从浏览器中复制网页的源代码:

1. 在 Chrome 浏览器中打开对应页面,然后开启开发者工具,如下图所示:



2. 在Elements标签页定位到标签,并右键,选择Copy-Copy OuterHTML,如下图所示:



3. 把源代码保存为1.html

提取正文信息
编写如下代码:
from gne import GeneralNewsExtractor 
with open('1.html') as f:    
    html = f.read() 
    extractor = GeneralNewsExtractor() 
    result = extractor.extract(html) 
    print(result)
运行效果如下图所示:





这次更新了什么
在最新更新的 v0.04版本中,开放了正文图片提取功能,与返回正文源代码功能。其中返回图片 URL 的功能在上面已经演示了,结果中的 images 字段就是正文中的图片。

那么怎么返回正文源代码呢?只需要增加一个参数 with_body_html=True 即可:
from gne import GeneralNewsExtractor 
with open('1.html') as f:    
    html = f.read() 
    extractor = GeneralNewsExtractor() 
    result = extractor.extract(html, with_body_html=True) 
    print(result)
运行效果如下图所示:



返回结果中的 body_html 就是正文的 html 源代码。

关于 GNE 的深入使用,可以访问GNE 的Github: https://github.com/kingname/GeneralNewsExtractor
分享到:
回复

使用道具 举报

回答|共 29 个

sfhfpc

发表于 2019-11-26 12:46:33 | 显示全部楼层

这个库的功能性非常强,而且实用性极高,我也推荐大家去了解 GNE

对于做舆情和新闻站爬虫的工程师来说,这个库就相当于给正在打游戏的你换上了一副机械键盘——丝滑!
回复

使用道具 举报

搬砖的手微微颤抖

发表于 2019-11-26 13:09:09 | 显示全部楼层

回复

使用道具 举报

root

发表于 2019-11-26 13:18:29 | 显示全部楼层

给大佬递烟
回复

使用道具 举报

dirty_dan

发表于 2019-11-26 14:21:31 | 显示全部楼层

非常好用,常见网站通杀
回复

使用道具 举报

kingname

发表于 2019-11-26 15:42:46 | 显示全部楼层

感谢2楼的肯定。
回复

使用道具 举报

deepall

发表于 2019-11-26 16:11:31 | 显示全部楼层

厉害
回复

使用道具 举报

kingname

发表于 2019-11-26 16:15:15 | 显示全部楼层

感谢
回复

使用道具 举报

flyme

发表于 2019-11-26 16:57:43 | 显示全部楼层

看介绍是个好东西
回复

使用道具 举报

Jane

发表于 2019-11-26 17:01:30 | 显示全部楼层

支持大佬!!!
回复

使用道具 举报