V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zhijieju
V2EX  ›  问与答

GitHub 开源项目新闻类爬虫,懒人必备!

  •  1
     
  •   zhijieju · 2020-04-19 23:29:14 +08:00 · 1549 次点击
    这是一个创建于 1479 天前的主题,其中的信息可能已经有所发展或是发生改变。

    hello,小伙伴们大家好

    今天给大家介绍的开源项目是 python 爬虫利器,使用 python 语言的小伙伴们的福利哦!假如你在工作中接到产品小姐姐的需求,需求是获取今日头条、网易新闻、游民星空、 观察者网、凤凰网、腾讯新闻、ReadHub 、新浪新闻等数百个中文新闻网站中输出正文内容、标题、作者、发布时间、正文中的图片地址和正文所在的标签源代码,你会怎么做,假如你 code 功力还没有经过九九八十一天的修炼,还没有练到元婴期,你脑子里应该想的是我要写这么多规则,可怎么办,要累死人呢!要是有一个通用的规则就好了,everybady 现在给大家介绍的这个开源项目就完美的解决了这个问题,他来了,他来了,他带着开源项目GeneralNewsExtractor走来了。

    GNE 是什么?

    GeneralNewsExtractor ( GNE )是一个通用新闻网站正文抽取模块,会输入一篇新闻网页的 HTML, 输出正文内容、标题、作者、发布时间、正文中的图片地址和正文所在的标签源代码。GNE 在提取今日头条、新浪,腾讯新闻等数百个中文新闻网站上效果非常出色,几乎能够达到 100%的准确率。

    使用方式也特别简单:

    安装

    在线体验

    如果你想先体验 GNE 的提取效果,那么你可以访问: http://122.51.39.219。 一般情况下,你只需要把网页粘贴到最上面的多行文本框中,然后点 提取 按钮即可。

    安装 GNE

    pip install --upgrade gne
    

    使用 GNE

    from gne import GeneralNewsExtractor
    html = '''经过渲染的网页 HTML 代码'''
    extractor = GeneralNewsExtractor()
    result = extractor.extract(html, noise_node_list=['//div[@class="comment-list"]'])
    print(result)
    {"title": "xxxx", "publish_time": "2020-03-21 09:00:00", "author": "yyy", "content": "zzzz", "images": ["/xxx.jpg", "/yyy.png"]}
    

    当然,XPath 是支持自定义规则的

    from gne import GeneralNewsExtractor
    
    extractor = GeneralNewsExtractor()
    html = '你的目标网页正文'
    result = extractor.extract(html, title_xpath='//h5/text()')
    print(result)
    

    使用效果

    网易新闻 网易新闻 今日头条 在这里插入图片描述 新浪新闻 凤凰网 在这里插入图片描述

    API

    GNE 的函数原型为:

    class GeneralNewsExtractor:
        def extract(self, html, title_xpath='', host='', author_xpath='', publish_time_xpath='', noise_node_list=None, with_body_html=False)
    

    各个参数的意义如下:

    • html(str): 目标网站的源代码。
    • title_xpath(str): 新闻标题的 XPath,用于定向提取标题。
    • host(str): 图片所在的域名,例如 https://www.kingname.info, 那么,当 GNE 从新闻网站提取到图片的相对连接/images/123.png时,会把 host 拼接上去,变成https://www.kingname.info/images/123.png
    • noise_node_list(List[str]): 一个包含 XPath 的列表。这个列表中的 XPath 对应的标签,会在预处理时被直接删除掉,从而避免他们影响新闻正文的提取。
    • with_body_html(bool): 默认为 False,此时,返回的提取结果不含新闻正文所在标签的 HTML 源代码。当把它设置为 True 时,返回的结果会包含字段 body_html,内容是新闻正文所在标签的 HTML 源代码。
    • author_xpath(str): 文章作者的 XPath,用于定向提取文章作者。
    • publish_time_xpath(str): 文章发布时间的 XPath,用于定向提取文章发布时间

    开源项目地址: https://github.com/kingname/GeneralNewsExtractor

    有兴趣的小伙伴可以下载尝试应用一下,如果在使用期间遇到问题请在下方留言或私信我!

    今天的推荐不知道大家喜欢吗?如果你们喜欢话,请在文章底部留言和点赞,以表示对我的支持,你们的留言,点赞和转发关注是我持续更新的动力哦!

    在这里插入图片描述

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1022 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:23 · PVG 04:23 · LAX 13:23 · JFK 16:23
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.