精华内容
下载资源
问答
  • 报纸履带 基于爬网的抓取器,用于抓取报纸。 必需的依赖项: 码头工人 码头工人组成 从源代码运行爬虫程序: ...关于Newspaper3k库 这是一个很棒的库,可帮助解析新闻文章中的数据。目前,它不支持孟加拉语。
  • 报纸爬虫脚本 ...<newspaper> title.list --> acts as a index for other directories. articles -- 2018 ---- Dec ---- May -- 2017 ---- Jun ---- Aug -- 2016 ---- Oct ---- Jan abs
  • WordPress 2019年 销量榜第八名主题,多功能网站模板,可用于企业站、资讯站、商城、博客、CMS、论坛等
  • NewsPaper-源码

    2021-03-05 05:03:12
    NewsPaper
  • Newspaper

    千次阅读 2017-10-14 17:35:16
    Newspaper3k: Article scraping & curation   Inspired by requests for its simplicity and powered by lxml for its speed: "Newspaper is an amazing python library for extracting & curating ...

    Newspaper3k: Article scraping & curation

      Build status  Coverage status

    Inspired by requests for its simplicity and powered by lxml for its speed:

    "Newspaper is an amazing python library for extracting & curating articles." -- tweeted byKenneth Reitz, Author of requests

    "Newspaper delivers Instapaper style article extraction." -- The Changelog

    Newspaper is a Python3 library! Or, view our deprecated and buggy Python2 branch

    A Glance:

    >>> from newspaper import Article
    
    >>> url = 'http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/'
    >>> article = Article(url)
    >>> article.download()
    
    >>> article.html
    '<!DOCTYPE HTML><html itemscope itemtype="http://...'
    >>> article.parse()
    
    >>> article.authors
    ['Leigh Ann Caldwell', 'John Honway']
    
    >>> article.publish_date
    datetime.datetime(2013, 12, 30, 0, 0)
    
    >>> article.text
    'Washington (CNN) -- Not everyone subscribes to a New Year's resolution...'
    
    >>> article.top_image
    'http://someCDN.com/blah/blah/blah/file.png'
    
    >>> article.movies
    ['http://youtube.com/path/to/link.com', ...]
    >>> article.nlp()
    
    >>> article.keywords
    ['New Years', 'resolution', ...]
    
    >>> article.summary
    'The study shows that 93% of people ...'
    >>> import newspaper
    
    >>> cnn_paper = newspaper.build('http://cnn.com')
    
    >>> for article in cnn_paper.articles:
    >>>     print(article.url)
    http://www.cnn.com/2013/11/27/justice/tucson-arizona-captive-girls/
    http://www.cnn.com/2013/12/11/us/texas-teen-dwi-wreck/index.html
    ...
    
    >>> for category in cnn_paper.category_urls():
    >>>     print(category)
    
    http://lifestyle.cnn.com
    http://cnn.com/world
    http://tech.cnn.com
    ...
    
    >>> cnn_article = cnn_paper.articles[0]
    >>> cnn_article.download()
    >>> cnn_article.parse()
    >>> cnn_article.nlp()
    ...
    >>> from newspaper import fulltext
    
    >>> html = requests.get(...).text
    >>> text = fulltext(html)

    Newspaper has seamless language extraction and detection. If no language is specified, Newspaper will attempt to auto detect a language.

    >>> from newspaper import Article
    >>> url = 'http://www.bbc.co.uk/zhongwen/simp/chinese_news/2012/12/121210_hongkong_politics.shtml'
    
    >>> a = Article(url, language='zh') # Chinese
    
    >>> a.download()
    >>> a.parse()
    
    >>> print(a.text[:150])
    香港行政长官梁振英在各方压力下就其大宅的违章建
    筑(僭建)问题到立法会接受质询,并向香港民众道歉。
    梁振英在星期二(1210日)的答问大会开始之际
    在其演说中道歉,但强调他在违章建筑问题上没有隐瞒的
    意图和动机。 一些亲北京阵营议员欢迎梁振英道歉,
    且认为应能获得香港民众接受,但这些议员也质问梁振英有
    
    >>> print(a.title)
    港特首梁振英就住宅违建事件道歉

    If you are certain that an entire news source is in one language, go ahead and use the same api :)

    >>> import newspaper
    >>> sina_paper = newspaper.build('http://www.sina.com.cn/', language='zh')
    
    >>> for category in sina_paper.category_urls():
    >>>     print(category)
    http://health.sina.com.cn
    http://eladies.sina.com.cn
    http://english.sina.com
    ...
    
    >>> article = sina_paper.articles[0]
    >>> article.download()
    >>> article.parse()
    
    >>> print(article.text)
    新浪武汉汽车综合 随着汽车市场的日趋成熟,
    传统的“集全家之力抱得爱车归”的全额购车模式已然过时,
    另一种轻松的新兴 车模式――金融购车正逐步成为时下消费者购
    买爱车最为时尚的消费理念,他们认为,这种新颖的购车
    模式既能在短期内
    ...
    
    >>> print(article.title)
    两年双免0手续0利率 科鲁兹掀背金融轻松购_武汉车市_武汉汽
    车网_新浪汽车_新浪网

    Documentation

    Check out The Documentation for full and detailed guides using newspaper.

    Interested in adding a new language for us? Refer to: Docs - Adding new languages

    Features

    • Multi-threaded article download framework
    • News url identification
    • Text extraction from html
    • Top image extraction from html
    • All image extraction from html
    • Keyword extraction from text
    • Summary extraction from text
    • Author extraction from text
    • Google trending terms extraction
    • Works in 10+ languages (English, Chinese, German, Arabic, ...)
    >>> import newspaper
    >>> newspaper.languages()
    
    Your available languages are:
    input code      full name
    
      ar              Arabic
      ru              Russian
      nl              Dutch
      de              German
      en              English
      es              Spanish
      fr              French
      he              Hebrew
      it              Italian
      ko              Korean
      no              Norwegian
      pl              Polish
      pt              Portuguese
      sv              Swedish
      hu              Hungarian
      fi              Finnish
      da              Danish
      zh              Chinese
      id              Indonesian
      vi              Vietnamese
      tr              Turkish
      el              Greek
      uk              Ukrainian

    Get it now

    Run ✅ pip3 install newspaper3k ✅

    NOT ⛔ pip3 install newspaper ⛔

    On python3 you must install newspaper3knot newspapernewspaper is our python2 library. Although installing newspaper is simple with pip, you will run into fixable issues if you are trying to install on ubuntu.

    If you are on Debian / Ubuntu, install using the following:

    • Install pip3 command needed to install newspaper3k package:

      $ sudo apt-get install python3-pip
      
    • Python development version, needed for Python.h:

      $ sudo apt-get install python-dev
      
    • lxml requirements:

      $ sudo apt-get install libxml2-dev libxslt-dev
      
    • For PIL to recognize .jpg images:

      $ sudo apt-get install libjpeg-dev zlib1g-dev libpng12-dev
      

    NOTE: If you find problem installing libpng12-dev, try installing libpng-dev.

    • Download NLP related corpora:

      $ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
      
    • Install the distribution via pip:

      $ pip3 install newspaper3k
      

    If you are on OSX, install using the following, you may use both homebrew or macports:

    $ brew install libxml2 libxslt
    
    $ brew install libtiff libjpeg webp little-cms2
    
    $ pip3 install newspaper3k
    
    $ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
    

    Otherwise, install with the following:

    NOTE: You will still most likely need to install the following libraries via your package manager

    • PIL: libjpeg-dev zlib1g-dev libpng12-dev
    • lxml: libxml2-dev libxslt-dev
    • Python Development version: python-dev
    $ pip3 install newspaper3k
    
    $ curl https://raw.githubusercontent.com/codelucas/newspaper/master/download_corpora.py | python3
    

    Development

    If you'd like to contribute and hack on the newspaper project, feel free to clone a development version of this repository locally:

    git clone git://github.com/codelucas/newspaper.git
    

    Once you have a copy of the source, you can embed it in your Python package, or install it into your site-packages easily:

    $ pip3 install -r requirements.txt
    $ python3 setup.py install
    

    Feel free to give our testing suite a shot, everything is mocked!:

    $ python3 tests/unit_tests.py
    

    Planning on tweaking our full-text algorithm? Add the fulltext parameter:

    $ python3 tests/unit_tests.py fulltext
    

    Demo

    View a working online demo here: http://newspaper-demo.herokuapp.com

    LICENSE

    Authored and maintained by Lucas Ou-Yang.

    Parse.ly sponsored some work on newspaper, specifically focused on automatic extraction.

    Newspaper uses a lot of python-goose's parsing code. View their license here.

    Please feel free to email & contact me if you run into issues or just would like to talk about the future of this library and news extraction in general!

    转载至:https://www.ctolib.com/newspaper.html

    展开全文
  • django3-newspaper:报纸应用
  • WordPress主题 Newspaper V8.6 破解 WordPress主题 Newspaper V8.6 破解
  • nlp_newsletter::newspaper:自然语言处理(NLP)新闻通讯
  • netlify-latex::rolled-up_newspaper_selector:LaTeX项目的Netlify模板
  • Newspaper可以用来提取新闻、文章和内容分析。使用多线程,支持10多种语言等。 作者从requests库的简洁与强大得到灵感,使用python开发的可用于提取文章内容的程序。
  • 语言:English 在此处获取所有孟加拉语在线报纸列表,以获取孟加拉孟加拉语报纸的所有孟加拉语新闻。 此列表是在孟加拉国印刷和发行的报纸的列表。 在孟加拉国(BD)发行的报纸以孟加拉语和英语撰写。...
  • newspaper-navigator-源码

    2021-05-04 16:14:31
    Newspaper Navigator的目标是重新构想》中视觉内容的搜索。 该项目包括两个阶段: 通过使用新兴的机器学习技术,从美国编年史的1630万历史报纸页面中提取标题,照片,插图,地图,漫画,卡通和广告,从而创建。 ...
  • 下面我们来介绍两个比较基础的工具包 Readability 和 Newspaper 的用法,这两个包经我测试其实准确率并不是很好,主要是让大家大致对智能解析有初步的理解。后面还会介绍一些更加强大的智能化解析算法。 ...

    舆情爬虫是网络爬虫一个比较重要的分支,舆情爬虫往往需要爬虫工程师爬取几百几千个新闻站点。比如一个新闻页面我们需要爬取其标题、正文、时间、作者等信息,如果用传统的方式来实现,每一个站点都要配置非常多的规则,如果要维护一个几百上千的站点,那人力成本简直太高了。

    如果有一种方式可以在保证差不多的准确率的前提下,大幅提高提取效率的话,就需要用到智能文本提取了。

    本文首先介绍一下智能文本提取的基本原理,让大家对智能提取有基本的了解。然后介绍几个比较基础的工具包,准确率并不是很高,可以尝试一用。最后再介绍几篇比较前沿的技术供大家参考。

    智能文本提取

    目前来说,智能文本提取可以分为三类:

    • 基于网页文档内容的提取方法

    • 基于 DOM 结构信息的提取方法

    • 基于视觉信息的提取方法

    基于网页文档的提取方法将 HTML 文档视为文本进行处理,适用于处理含有大量文本信息且结构简单易于处理的单记录网页,或者具有实时要求的在线分析网页应用。这种方式主要利用自然语言处理相关技术实现,通过理解 文本语义、分析上下文、设定提取规则等,实现对大段网页文档的快速处理。其中,较为知名的方法有TSIMMIS、Web-OQL、Serrano、FAR-SW 和 FOREST,但这些方法由于通常需要人工的参与,且存在耗时长、效率低的弊端。

    基于 DOM 结构信息的方法将 HTML 文档解析为相应的 DOM 树,然后根据 DOM 树的语法结构创建提取规则, 相对于以前的方法而言有了更高的性能和准确率。W4F 和 XWRAP 将 HTML 文档解析成 DOM 树,然后通过组件化引导用户通过人工选择或者标记生成目标包装器代码。Omini、IEPAD 和 ITE 提取 DOM 树上的关键路径, 获取其中存在的重复模式。MDR 和 DEPTA 挖掘了页面中的数据区域,得到数据记录的模式。CECWS 通过聚类算法从数据库中提取出自同一网站的一组页面,并进行 DOM 树结构的对比,删除其中的静态部分,保留动态内容作为信息提取的结果。虽然此类方法相对于上一类方法 具有较高的提取精度,且克服了对大段连续文本的依赖, 但由于网页的 DOM 树通常较深,含有大量 DOM 节点, 因此基于 DOM 结构信息的方法具有较高的时间和空间消耗。目前来说,大部分原理还是基于 DOM 节点的文本密度、标点符号密度等计算的,其准确率还是比较可观的。今天所介绍的 Readability 和 Newspaper 的库的实现原理就是类似。

    目前比较先进的是基于视觉信息的网页信息提取方法,通过浏览器接口或者内核对目标网页预渲染,然后基于网页的视觉规律提取网页数据记录。经典的 VIPS 算法首先从 DOM 树中提取出所有合适的页面区域,然后根据这些页面和分割条重新构建 Web 页面的语义结构。作为对 VIPS 的拓展,ViNT、ViPER、ViDE 也成功利用了网页的视觉特征来实现数据提取。CMDR 为通过神经网络学习多记录型页面中的特征,结合基于 DOM 结构信息的 MDR 方法,挖掘社区论坛页面的数据区域。与上述方法不同,VIBS 将图像领域的 CNN 卷积神经网络运用于网页的截图,同时通过类 VIPS 算法生成视觉块,最后结合两个阶段的结果识别网页的正文区域。另外还有最新的国内提出的 VBIE 方法,基于网页视觉的基础上改进,可以实现无监督的网页信息提取。

    以上内容主要参考自论文:《王卫红等:基于可视块的多记录型复杂网页信息提取算法》,算法可从该论文参考文献查阅。

    下面我们来介绍两个比较基础的工具包 Readability 和 Newspaper 的用法,这两个包经我测试其实准确率并不是很好,主要是让大家大致对智能解析有初步的理解。后面还会介绍一些更加强大的智能化解析算法。

    Readability

    Readability 实际上是一个算法,并不是一个针对某个语言的库。其主要原理就是计算了 DOM 的文本密度,另外根据一些常见的 DOM 属性如 id、class 等计算了一些 DOM 的权重,最后分析得到了对应的 DOM 区块,进而提取出具体的文本内容。

    现在搜索 Readability 其实已经找不到了,取而代之的是一个 JavaScript 工具包,叫做 mercury-parser,据我所知应该是 Readability 不维护了,换成了 mercury-parser。后者现在也做成了一个 Chrome 插件,大家可以下载使用一下。

    回归正题,这次主要介绍的是 Python 的 Readability 实现,现在其实有很多开源版本,本文选取的是 https://github.com/buriy/python-readability,是基于最早的 Python 版本的 Readability 库 https://github.com/timbertson/python-readability 二次开发的,现在已经发布到了 PyPi,大家可以直接下载安装使用。

    安装很简单,通过 pip 安装即可:

    pip3 install readability-lxml

    安装好了之后便可以通过导入 readability 使用了,下面我们随便从网上找一个新闻页面,比如:https://tech.163.com/19/0909/08/EOKA3CFB00097U7S.html,其页面截图如下:

    我们的目的就是它的正文、标题等内容。下面我们用 Readability 试一下,示例如下:

    import requests
    from readability import Document
    
    url = 'https://tech.163.com/19/0909/08/EOKA3CFB00097U7S.html'
    html = requests.get(url).content
    doc = Document(html)
    print('title:', doc.title())
    print('content:', doc.summary(html_partial=True))

     在这里我们直接用 requests 库对网页进行了请求,获取了其 HTML 页面内容,赋值为 html。

    然后引入了 readability 里的 Document 类,使用 html 变量对其进行初始化,然后我们分别调用了 title 方法和 summary 方法获得了其标题和正文内容。

    这里 title 方法就是获取文章标题的,summary 就是获取文章正文的,但是它获取的正文可能包含一些 HTML 标签。这个 summary 方法可以接收一个 html_partial 参数,如果设置为 True,返回的结果则不会再带有 <html><body> 标签。

    看下运行结果:

    title: 今年iPhone只有小改进?分析师:还有其他亮点_网易科技
    content: <div><div class="post_text" id="endText">           
                        <p class="otitle">
                            (原标题:Apple Bets More Cameras Can Keep iPhone Humming)
                        </p>
                        <p class="f_center"><img alt="今年iPhone只有小改进?分析师:还有其他亮点" src="http://cms-bucket.ws.126.net/2019/09/09/d65ba32672934045a5bfadd27f704bc1.jpeg"/><span>图示:苹果首席执行官蒂姆·库克(Tim Cook)在6月份举行的苹果全球开发者大会上。</span></p><p>网易科技讯 9月9日消息,据国外媒体报道,和过去的12个年头一样,新款
    ... 中间省略 ...
                        <p>苹果还即将推出包括电视节目和视频游戏等内容的新订阅服务。分析师表示,该公司最早可能在本周宣布TV+和Arcade等服务的价格和上线时间。</p><p>Strategy Analytics的尼尔·莫斯顿(Neil Mawston)表示,可穿戴设备和服务的结合将是苹果业务超越iPhone的关键。他说,上一家手机巨头诺基亚公司在试图进行类似业务转型时就陷入了困境之中。(辰辰)</p><p><b>相关报道:</b></p><p><a href="https://tech.163.com/19/0908/09/EOHS53RK000999LD.html" target="_self" urlmacroreplace="false">iPhone 11背部苹果Logo改为居中:为反向无线充电</a></p><p><a href="https://tech.163.com/19/0907/08/EOF60CBC00097U7S.html" target="_self" urlmacroreplace="false">2019年新iPhone传言汇总,你觉得哪些能成真</a>  </p><p/>
                            <p/>
                            <div class="ep-source cDGray">
                                <span class="left"><a href="http://tech.163.com/"><img src="https://static.ws.126.net/cnews/css13/img/end_tech.png" alt="王凤枝" class="icon"/></a> 本文来源:网易科技报道  </span>
                                <span class="ep-editor">责任编辑:王凤枝_NT2541</span>
                            </div>
                    </div> 
    </div>

    可以看到,标题提取是正确的。正文其实也是正确的,不过这里还包含了一些 HTML 标签,比如 <img><p> 等,我们可以进一步通过一些解析库来解析。

    看下源码吧,比如提取标题的方法:

    def normalize_entities(cur_title):
        entities = {
            u'\u2014':'-',
            u'\u2013':'-',
            u'&mdash;': '-',
            u'&ndash;': '-',
            u'\u00A0': ' ',
            u'\u00AB': '"',
            u'\u00BB': '"',
            u'&quot;': '"',
        }
        for c, r in entities.items():
            if c in cur_title:
                cur_title = cur_title.replace(c, r)
    
        return cur_title
    
    def norm_title(title):
        return normalize_entities(normalize_spaces(title))
    
    def get_title(doc):
        title = doc.find('.//title')
        if title is None or title.text is None or len(title.text) == 0:
            return '[no-title]'
    
        return norm_title(title.text)
    
     def title(self):
        """Returns document title"""
        return get_title(self._html(True))

    title 方法实际上就是调用了一个 get_title 方法,它怎么做的?实际上就是用了一个 XPath 只解析了 <title> 标签里面的内容,别的没了。如果没有,那就返回 [no-title]

    def summary(self, html_partial=False):
        ruthless = True
        while True:
            self._html(True)
            for i in self.tags(self.html, 'script', 'style'):
                i.drop_tree()
            for i in self.tags(self.html, 'body'):
                i.set('id', 'readabilityBody')
            if ruthless:
                self.remove_unlikely_candidates()
            self.transform_misused_divs_into_paragraphs()
            candidates = self.score_paragraphs()
    
            best_candidate = self.select_best_candidate(candidates)
    
            if best_candidate:
                article = self.get_article(candidates, best_candidate,
                                           html_partial=html_partial)
            else:
                if ruthless:
                    ruthless = False
                    continue
                else:
                    article = self.html.find('body')
                    if article is None:
                        article = self.html
            cleaned_article = self.sanitize(article, candidates)
            article_length = len(cleaned_article or '')
            retry_length = self.retry_length
            of_acceptable_length = article_length >= retry_length
            if ruthless and not of_acceptable_length:
                ruthless = False
                continue
            else:
                return cleaned_article

    这里我删除了一些冗余的调试的代码,只保留了核心的代码,其核心实现就是先去除一些干扰内容,然后找出一些疑似正文的 candidates,然后再去寻找最佳匹配的 candidates 最后提取其内容返回即可。

    然后再找到获取 candidates 方法里面的 score_paragraphs 方法,又追踪到一个 score_node 方法,就是为每一个节点打分的,其实现如下:

    def score_node(self, elem):
        content_score = self.class_weight(elem)
        name = elem.tag.lower()
        if name in ["div", "article"]:
            content_score += 5
        elif name in ["pre", "td", "blockquote"]:
            content_score += 3
        elif name in ["address", "ol", "ul", "dl", "dd", "dt", "li", "form", "aside"]:
            content_score -= 3
        elif name in ["h1", "h2", "h3", "h4", "h5", "h6", "th", "header", "footer", "nav"]:
            content_score -= 5
        return {
            'content_score': content_score,
            'elem': elem
        }

    这什么意思呢?你看如果这个节点标签是 div 或者 article 等可能表征正文区块的话,就加 5 分,如果是 aside 等表示侧栏的内容就减 3 分。这些打分也没有什么非常标准的依据,可能是根据经验累积的规则。

    另外还有一些方法里面引用了一些正则匹配来进行打分或者替换,其定义如下:

    REGEXES = {
        'unlikelyCandidatesRe': re.compile('combx|comment|community|disqus|extra|foot|header|menu|remark|rss|shoutbox|sidebar|sponsor|ad-break|agegate|pagination|pager|popup|tweet|twitter', re.I),
        'okMaybeItsACandidateRe': re.compile('and|article|body|column|main|shadow', re.I),
        'positiveRe': re.compile('article|body|content|entry|hentry|main|page|pagination|post|text|blog|story', re.I),
        'negativeRe': re.compile('combx|comment|com-|contact|foot|footer|footnote|masthead|media|meta|outbrain|promo|related|scroll|shoutbox|sidebar|sponsor|shopping|tags|tool|widget', re.I),
        'divToPElementsRe': re.compile('<(a|blockquote|dl|div|img|ol|p|pre|table|ul)', re.I),
        #'replaceBrsRe': re.compile('(<br[^>]*>[ \n\r\t]*){2,}',re.I),
        #'replaceFontsRe': re.compile('<(\/?)font[^>]*>',re.I),
        #'trimRe': re.compile('^\s+|\s+$/'),
        #'normalizeRe': re.compile('\s{2,}/'),
        #'killBreaksRe': re.compile('(<br\s*\/?>(\s|&nbsp;?)*){1,}/'),
        'videoRe': re.compile('https?:\/\/(www\.)?(youtube|vimeo)\.com', re.I),
        #skipFootnoteLink:      /^\s*(\[?[a-z0-9]{1,2}\]?|^|edit|citation needed)\s*$/i,
    }

    比如这里定义了 unlikelyCandidatesRe,就是不像 candidates 的 pattern,比如 foot、comment 等等,碰到这样的标签或 pattern 的话,在计算分数的时候都会减分,另外还有其他的 positiveRe、negativeRe 也是一样的原理,分别对匹配到的内容进行加分或者减分。

    这就是 Readability 的原理,是基于一些规则匹配的打分模型,很多规则其实来源于经验的累积,分数的计算规则应该也是不断地调优得出来的。

    另外其他的就没了,Readability 并没有提供提取时间、作者的方法,另外此种方法的准确率也是有限的,但多少还是省去了一些人工成本。

    Newspaper

    另外还有一个智能解析的库,叫做 Newspaper,提供的功能更强一些,但是准确率上个人感觉和 Readability 差不太多。

    这个库分为 Python2 和 Python3 两个版本,Python2 下的版本叫做 newspaper,Python3 下的版本叫做 newspaper3k,这里我们使用 Python3 版本来进行测试。

    其 GitHub 地址是:https://github.com/codelucas/newspaper,官方文档地址是:https://newspaper.readthedocs.io。

    在安装之前需要安装一些依赖库,可以参考官方的说明:https://github.com/codelucas/newspaper#get-it-now。

    安装好必要的依赖库之后,就可以使用 pip 安装了:

    pip3 install newspaper3k

    安装成功之后便可以导入使用了。

    下面我们先用官方提供的实例来过一遍它的用法,官方提供的示例是使用了这个链接:https://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/,其页面截图如下:

    官方示例

    下面用一个实例来感受一下:

    from newspaper import Article
    
    url = 'https://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/'
    article = Article(url)
    article.download()
    # print('html:', article.html)
    
    article.parse()
    print('authors:', article.authors)
    print('date:', article.publish_date)
    print('text:', article.text)
    print('top image:', article.top_image)
    print('movies:', article.movies)
    
    article.nlp()
    print('keywords:', article.keywords)
    print('summary:', article.summary)

     

    这里从 newspaper 库里面先导入了 Article 这个类,然后直接传入 url 即可,首先需要调用它的 download 方法,将网页爬取下来,否则直接进行解析会抛出错误的。

    但我总感觉这个设计挺不友好的,parse 方法不能判断下,如果没执行 download 就自动执行 download 方法吗?如果不 download 其他的不什么都干不了吗?

    好的,然后我们再执行 parse 方法进行网页的智能解析,这个功能就比较全了,能解析 authors、publish_date、text 等等,除了正文还能解析作者、发布时间等等。

    另外这个库还提供了一些 NLP 的方法,比如获取关键词、获取文本摘要等等,在使用前需要先执行以下 nlp 方法。

    最后运行结果如下:

    authors: ['Cnn Wire']
    date: 2013-12-30 00:00:00
    text: By Leigh Ann Caldwell
    
    WASHINGTON (CNN) — Not everyone subscribes to a New Year’s resolution, but Americans will be required to follow new laws in 2014.
    
    Some 40,000 measures taking effect range from sweeping, national mandates under Obamacare to marijuana legalization in Colorado, drone prohibition in Illinois and transgender protections in California.
    
    Although many new laws are controversial, they made it through legislatures, public referendum or city councils and represent the shifting composition of American beliefs.
    ...
    ...
    Colorado: Marijuana becomes legal in the state for buyers over 21 at a licensed retail dispensary.
    
    (Sourcing: much of this list was obtained from the National Conference of State Legislatures).
    top image: https://localtvkstu.files.wordpress.com/2012/04/national-news-e1486938949489.jpg?quality=85&strip=all
    movies: []
    keywords: ['drones', 'national', 'guns', 'wage', 'law', 'pot', 'leave', 'family', 'states', 'state', 'latest', 'obamacare', 'minimum', 'laws']
    summary: Oregon: Family leave in Oregon has been expanded to allow eligible employees two weeks of paid leave to handle the death of a family member.
    Arkansas: The state becomes the latest state requiring voters show a picture ID at the voting booth.
    Minimum wage and former felon employmentWorkers in 13 states and four cities will see increases to the minimum wage.
    New Jersey residents voted to raise the state’s minimum wage by $1 to $8.25 per hour.
    California is also raising its minimum wage to $9 per hour, but workers must wait until July to see the addition.

    这里省略了一些输出结果。

    可以看到作者、日期、正文、关键词、标签、缩略图等信息都被打印出来了,还算是不错的。

    但这个毕竟是官方的实例,肯定是好的,我们再测试一下刚才的例子,看看效果如何,网址还是:https://tech.163.com/19/0909/08/EOKA3CFB00097U7S.html,改写代码如下:

    from newspaper import Article
    
    url = 'https://tech.163.com/19/0909/08/EOKA3CFB00097U7S.html'
    article = Article(url, language='zh')
    article.download()
    # print('html:', article.html)
    
    article.parse()
    print('authors:', article.authors)
    print('title:', article.title)
    print('date:', article.publish_date)
    print('text:', article.text)
    print('top image:', article.top_image)
    print('movies:', article.movies)
    
    article.nlp()
    print('keywords:', article.keywords)
    print('summary:', article.summary)

    这里我们将链接换成了新闻的链接,另外在 Article 初始化的时候还加了一个参数 language,其值为 zh,代表中文。

    然后我们看下运行结果:

    Building prefix dict from /usr/local/lib/python3.7/site-packages/jieba/dict.txt ...
    Dumping model to file cache /var/folders/1g/l2xlw12x6rncs2p9kh5swpmw0000gn/T/jieba.cache
    Loading model cost 1.7178938388824463 seconds.
    Prefix dict has been built succesfully.
    authors: []
    title: 今年iPhone只有小改进?分析师:还有其他亮点
    date: 2019-09-09 08:10:26+08:00
    text: (原标题:Apple Bets More Cameras Can Keep iPhone Humming)
    
    图示:苹果首席执行官蒂姆·库克(Tim Cook)在6月份举行的苹果全球开发者大会上。
    
    网易科技讯 9月9日消息,据国外媒体报道,和过去的12个年头一样,新款iPhone将成为苹果公司本周所举行年度宣传活动的主角。但人们的注意力正转向需要推动增长的其他苹果产品和服务。
    ...
    ...
    Strategy Analytics的尼尔·莫斯顿(Neil Mawston)表示,可穿戴设备和服务的结合将是苹果业务超越iPhone的关键。他说,上一家手机巨头诺基亚公司在试图进行类似业务转型时就陷入了困境之中。(辰辰)
    
    相关报道:
    
    iPhone 11背部苹果Logo改为居中:为反向无线充电
    
    2019年新iPhone传言汇总,你觉得哪些能成真
    top image: https://www.163.com/favicon.ico
    movies: []
    keywords: ['trust高级投资组合经理丹摩根dan', 'iphone', 'mawston表示可穿戴设备和服务的结合将是苹果业务超越iphone的关键他说上一家手机巨头诺基亚公司在试图进行类似业务转型时就陷入了困境之中辰辰相关报道iphone', 'xs的销售疲软状况迫使苹果在1月份下调了业绩预期这是逾15年来的第一次据贸易公司susquehanna', 'xs机型发布后那种令人失望的业绩重演iphone', '今年iphone只有小改进分析师还有其他亮点', 'more', 'xr和iphone', 'morgan说他们现在没有任何真正深入的进展只是想继续让iphone这款业务继续转下去他乐观地认为今年发布的新款手机将有足够多的新功能为一个非常成熟的产品增加额外的功能让火车继续前进这种仅限于此的态度说明了苹果自2007年发布首款iphone以来所面临的挑战iphone销售占苹果公司总营收的一半以上这让苹果陷入了一个尴尬的境地既要维持核心产品的销量另一方面又需要减少对它的依赖瑞银ubs今年5月份对8000名智能手机用户进行了相关调查其发布的年度全球调查报告显示最近iphone在人脸识别技术等方面的进步并没有引起一些消费者的共鸣他们基本上都认为苹果产品没有过去几年那么独特或者惊艳品牌也没有过去几年那么有吸引力很多人使用老款手机的时间更长自己认为也没有必要升级到平均售价949美元的新款iphone苹果需要在明年销售足够多的iphone以避免像去年9月份iphone', 'keep', '原标题apple']
    summary: (原标题:Apple Bets More Cameras Can Keep iPhone Humming)图示:苹果首席执行官蒂姆·库克(Tim Cook)在6月份举行的苹果全球开发者大会上。网易科技讯 9月9日消息,据国外媒体报道,和过去的12个年头一样,新款iPhone将成为苹果公司本周所举行...亚公司在试图进行类似业务转型时就陷入了困境之中。(辰辰)相关报道:iPhone 11背部苹果Logo改为居中:为反向无线充电2019年新iPhone传言汇总,你觉得哪些能成真

    中间正文很长省略了一部分,可以看到运行时首先加载了一些中文的库包,比如 jieba 所依赖的词表等等。

    解析结果中,日期的确是解析对了,因为这个日期格式的的确比较规整,但这里还自动给我们加了东八区的时区,贴心了。作者没有提取出来,可能是没匹配到 来源 两个字吧,或者词库里面没有,标题、正文的提取还算比较正确,也或许这个案例的确是比较简单。

    另外对于 NLP 部分,获取的关键词比较迷,长度有点太长了。summary 也有点冗余。

    另外 Newspaper 还提供了一个较为强大的功能,就是 build 构建信息源。官方的介绍其功能就是构建一个新闻源,可以根据传入的 URL 来提取相关文章、分类、RSS 订阅信息等等。

    我们用实例感受一下:

    import newspaper
    
    source = newspaper.build('http://www.sina.com.cn/', language='zh')
    for category in source.category_urls():
        print(category)
    
    for article in source.articles:
        print(article.url)
        print(article.title)
    
    for feed_url in source.feed_urls():
        print(feed_url)

    在这里我们传入了新浪的官网,调用了 build 方法,构建了一个 source,然后输出了相关的分类、文章、RSS 订阅等内容,运行结果如下:

    http://cul.news.sina.com.cn
    http://www.sina.com.cn/
    http://sc.sina.com.cn
    http://jiangsu.sina.com.cn
    http://gif.sina.com.cn
    ....
    http://tj.sina.com.cn
    http://travel.sina.com.cn
    http://jiaoyi.sina.com.cn
    http://cul.sina.com.cn
    https://finance.sina.com.cn/roll/2019-06-12/doc-ihvhiqay5022316.shtml 
    经参头版:激发微观主体活力加速国企改革
    http://eladies.sina.com.cn/feel/xinli/2018-01-25/0722/doc-ifyqwiqk0463751.shtml 
    我们别再联系了
    http://finance.sina.com.cn/roll/2018-05-13/doc-ihamfahx2958233.shtml 
    新违约时代到来!违约“常态化”下的市场出清与换血
    http://sports.sina.com.cn/basketball/2019worldcup/2019-09-08/doc-iicezzrq4390554.shtml 
    罗健儿26分韩国收首胜
    ...
    http://travel.sina.com.cn/outbound/pages/2019-09-05/detail-iicezzrq3622449.shtml 
    菲律宾海滨大道 夜晚让人迷离
    http://travel.sina.com.cn/outbound/pages/2016-08-19/detail-ifxvcnrv0334779.shtml  
    关岛 用双脚尽情享受阳光与海滩
    http://travel.sina.com.cn/domestic/pages/2019-09-04/detail-iicezzrq3325092.shtml 
    秋行查干浩特草原
    http://travel.sina.com.cn/outbound/pages/2019-09-03/detail-iicezueu3050710.shtml 
    白羊座的土豪之城迪拜
    http://travel.sina.com.cn/video/baidang/2019-08-29/detail-ihytcitn2747327.shtml 
    肯辛顿宫藏着维多利亚的秘密
    http://cd.auto.sina.com.cn/bdcs/2017-08-15/detail-ifyixias1051586.shtml 

    可以看到它输出了非常多的类别链接,另外还有很多文章列表,由于没有 RSS 订阅内容,这里没有显示。

    下面把站点换成我的博客:https://cuiqingcai.com,博客截图如下:

    博客截图

    看看运行结果:

    https://cuiqingcai.com
    https://cuiqingcai.com
    

    似乎不太行啊,一篇文章都没有,RSS 也没有,可见其功能还有待优化。

    Newspaper 的基本用法介绍到这里,更加详细的用法可以参考官方文档:https://newspaper.readthedocs.io。个人感觉其中的智能解析可以用用,不过据我的个人经验,感觉还是很多解析不对或者解析不全的,

    以上便是 Readability 和 Newspaper 的介绍。

    其他方案

    另外除了这两个库其实还有一些比较优秀的算法,由于我们处理的大多为中文文档,所以一些在中文上面的研究是比较有效的,在这里列几个值得借鉴的中文论文供大家参考:

    • 洪鸿辉等,基于文本及符号密度的网页正文提取方法

    • 梁东等,基于支持向量机的网页正文内容提取方法

    • 王卫红等,基于可视块的多记录型复杂网页信息提取算法

    今天还看到一位大佬「青南」根据上面第一篇论文所实现的 GeneralNewsExtractor,GitHub 地址为:https://github.com/kingname/GeneralNewsExtractor,经测试准确率还不错,比 Readability 和 Newspaper 的解析效果要好。我也跟作者进行了交流,后续可能还会基于其他的 Feature 或依赖于视觉化的方法进行优化,大家可以关注下,谢谢!

    作者:华为云享专家 崔庆才

     

    展开全文
  • python-newspaper 服务器将与 2021.4.1 关停不再续费. sqlite 备份在 Release 里, 备份时间 2021-03-07. 之后会考虑通过另一个项目 Watchdogs 开展订阅. Timeline RSS 日报 当前进度: 购买服务器 准备备用服务器 ...
  • 1、介绍newspaper包 ​ Newspaper框架是Python爬虫框架中在GitHub上点赞排名第三的爬虫框架,适合抓取新闻网页。它的操作非常简单易学,即使对完全没了解过爬虫的初学者也非常的友好,简单学习就能轻易上手,因为...

    作者 | CDA数据分析师

    1、介绍newspaper包

    ​ Newspaper框架是Python爬虫框架中在GitHub上点赞排名第三的爬虫框架,适合抓取新闻网页。它的操作非常简单易学,即使对完全没了解过爬虫的初学者也非常的友好,简单学习就能轻易上手,因为使用它不需要考虑header、IP代理,也不需要考虑网页解析,网页源代码架构等问题。这个是它的优点,但也是它的缺点,不考虑这些会导致它访问网页时会有被直接拒绝的可能。

    ​ 总得来说,Newspaper框架并不适用于实际工程类新闻信息爬取工作,框架不稳定,爬取过程中会有各种bug,例如获取不到url、新闻信息等,但对于想获取一些新闻语料的朋友不妨一试,简单方便易上手,且不需要掌握太多关于爬虫方面的专业知识。

    newspaper的功能

    • 多线程文章下载框架
    • 新闻网址识别
    • 从html中提取文本
    • 从html中提取顶部图像
    • 从html中提取所有图像
    • 从文本中提取关键字
    • 从文本中提取摘要
    • 从文本中提取作者
    • Google趋势术语提取。
    • 使用10种以上语言(英语,中文,德语,阿拉伯语…)

    2、newspaper包示例教学

    ​ newspaper包并不是默认已安装的模块库,因此在第一次使用newspaper库前,需要先安装好newspaper库,通常可以说通过快捷键win+R,输入cmd,回车打开命令窗口,输入

    pip install newspaper3k
    

    ​ 进行安装,需要注意的是:需要安装的是newspaper3k而不是newspaper,因为newspaper是python 2的安装包,pip install newspaper 无法正常安装,请用python 3对应的 pip install newspaper3k正确安装。

    2.1 单条新闻爬取示例

    ​ 爬取单条新闻用到的是newspaper中的Article包,爬取指定网页的新闻内容,也就是当你想爬取某一篇新闻的内容,那么需要先获取它的网址,然后再以这个单一的网址作为目标来爬取内容。

    ​ 下面以2019年12月6日南方网的一篇新闻《最短10分钟 广州南站直达市中心》作为例子进行说明。首先需要设定新闻的网址,然后使用Article函数,第一个参数是网址,第二个常用参数是语言language,中文是以字符串**‘ch’**表示。然后在用download函数和parse函数对新闻进行加载已经解析,这两步执行完之后结果新闻所有内容就已经加载出来了,剩下来就是从中使用函数分解出自己需要的内容了。

    ## 用Article爬取单条新闻
    from newspaper import Article
    # 目标新闻网址
    url = 'http://news.southcn.com/gd/content/2019-12/06/content_189723331.htm'
    news = Article(url, language='zh')
    news.download()        # 加载网页
    news.parse()           # 解析网页
    print('题目:',news.title)       # 新闻题目
    print('正文:\n',news.text)      # 正文内容                                       
    print(news.authors)     # 新闻作者
    print(news.keywords)    # 新闻关键词
    print(news.summary)     # 新闻摘要
    
    # print(news.top_image) # 配图地址
    # print(news.movies)    # 视频地址
    # print(news.publish_date) # 发布日期
    # print(news.html)      # 网页源代码
    

    结果:

    题目: 最短10分钟 广州南站直达市中心
    正文:
     专家建议应在核心区内贯彻站城一体的建设理念,保障多层级地下空间的连续,对人流进行分层管理,明确南站要建以轨道交通为衔接的立体枢纽。
    
    南方网讯 5日,《广州南站周边地区控制性详细规划深化》在广州市规委会会议上获得通过。该规划针对广州南站启用近10年来面临的问题进行全面梳理。规划提出,要在36平方公里的规划范围内,形成7大组团协同发展,打造高350米的站前地标建筑,对12条旧村将进行全面改造。
    
    规委会上,南站内外交通优化问题最受关注。专家建议应在核心区内贯彻站城一体的建设理念,保障多层级地下空间的连续,对人流进行分层管理,明确南站要建以轨道交通为衔接的立体枢纽。
    
    为此,本轮规划在南站地区规划了9条轨道交通,规划轨道线路总长38.2公里,共设站点16座,轨道站点覆盖率达37.8%,核心区轨道交通站点覆盖率达100%。9条轨道交通分别是:3条城际轨道——广珠城际:广州南站—珠海;广佛环城际:广州南站—金融城—白云机场—佛山西站—广州南站;佛莞城际:佛山—广州南站—莞城。4条地铁——2号线:嘉禾望岗—广州南站;7号线:佛山北滘新城—广州南站—萝岗;22号线:南沙客运港—广州南站—白鹅潭—白云机场;佛山2号线:佛山西站—广州南站。2条有轨电车——南海新交通:广州南站—南海金融高新区;N2线:广州南站—大夫山—市桥—莲花山。
    
    此外,规划提出要构建4条南站与广州中心城区快速连接的直达干道,只需10—20分钟就能从南站直达市中心。
    
    南方日报记者 刘怀宇 通讯员 穗规资宣
    []
    []
    

    ​ 除了常用到的正文和题目外,还可以获取新闻的作者、发布时间、摘要、关键词、图片链接、视频链接等等,但是并不能100%识别,很多新闻的作者,关键词和文章摘要都无法识别出来,发布时间,图片、视频链接就基本能识别出来。

    ​ 如果文章没有指明使用的什么语言的时候,newspaper会尝试自动识别。世界上各国语言何其之多,newspaper也不能100%完美支持各种语言的,不过目前newspaper可以支持35种语言,基本上可以说能够覆盖时间上绝大多数国家和地区的新闻了。

    ​ 通过newspaper.languages(),可以查看newspaper库支持的语言及其对应参数输入

    >>> import newspaper
    >>> newspaper.languages()    # 查看newspaper库支持的语言及其对应参数输入
    
    Your available languages are:
    
    input code      full name
      ar              Arabic
      be              Belarusian
      bg              Bulgarian
      da              Danish
      de              German
      el              Greek
      en              English
      es              Spanish
      et              Estonian
      fa              Persian
      fi              Finnish
      fr              French
      he              Hebrew
      hi              Hindi
      hr              Croatian
      hu              Hungarian
      id              Indonesian
      it              Italian
      ja              Japanese
      ko              Korean
      mk              Macedonian
      nb              Norwegian (Bokmål)
      nl              Dutch
      no              Norwegian
      pl              Polish
      pt              Portuguese
      ro              Romanian
      ru              Russian
      sl              Slovenian
      sr              Serbian
      sv              Swedish
      sw              Swahili
      tr              Turkish
      uk              Ukrainian
      vi              Vietnamese
      zh              Chinese
    

    2.2 同网站下多条新闻爬取

    ​ 单条新闻爬取的效率太低了,而且需要先行找到新闻的详细网址才可以爬取其中内容,如果是需要爬取某个网站或者多个网站的大量新闻,这样使用明显是不够的。newspaper可以通过构建新闻源,把整个新闻网站的所有新闻包含进来,然后再通过这个新闻源对新闻网站进行索引和爬取。以下以南方网为例,详细解读该如何使用newspaper库爬取多条新闻。

    1、先构建新闻源

    import newspaper
    url = 'http://www.southcn.com/'      # 南方网
    south_paper = newspaper.build(url, language='zh')    # 构建新闻源
    

    2、文章缓存

    ​ 默认情况下,newspaper缓存所有以前提取的文章,并删除它已经提取的任何文章。此功能用于防止重复的文章和提高提取速度。

    >>> south_paper.size()   # 查看有多少链接
    1838
    
    >>> ## 在默认文章缓存的情况下过一段时间后再次
    >>> url = 'http://www.southcn.com/'      # 南方网
    >>> new_south_paper = newspaper.build(url, language='zh')    # 构建新的新闻源
    >>> new_south_paper.size()
    18
    

    ​ 相隔一段时间后重新构建同一网站的新闻源,再查看新闻链接,发现只有18个了,说明在这一段时间内,新增/更新了18条新闻。如果不需要使用这个功能,可以使用memoize_articles参数选择退出此功能。

    south_paper = newspaper.build(url,language='zh',memoize_articles = False)    # 构建新闻源
    

    3、提取源类别

    ​ 通过category_urls()可提取出源网站下所有的其他新闻网站链接,可以通过取出来的网站链接,建立更多的新闻源,从而获取跟多的新闻。

    # 提取源类别
    for category in south_paper.category_urls():
        print(category)
    

    结果:

    http://www.southcn.com/
    http://pc.nfapp.southcn.com
    http://culture.southcn.com
    http://theory.southcn.com
    http://creditgd.southcn.com
    ......
    

    4、提取源新闻网站的品牌和描述

    ​ 构建新闻源之后,可以直接查看其品牌名称和新闻网站的介绍。

    # 提取源新闻网站的品牌和描述
    print('品牌:',south_paper.brand)  # 品牌
    print('描述:',south_paper.description) # 描述
    
    品牌: southcn
    描述: 南方网/南方新闻网是经中共广东省委,广东省人民政府批准建设的新闻宣传网站。南方网/南方新闻网由广东省委宣传部主办主管并作为南方报业传媒集团之成员单位,获国务院新闻办公室批准从事登载新闻业务并被确定为全国重点新闻网站之一。南方网/南方新闻网作为华南地区最大型的新闻融合平台,是国内外网民认识、了解广东最权威、最快捷的途径。
    

    5、查看新闻链接

    ​ 构建新闻源之后,还可以查看整个新闻源下的所有新闻链接及其数量,通过for循环,可以一一列出所有对应的新闻网页。这个与第三小点中的源类别不一样,源类别中提前的是新闻网站的主网页,每个主网页下有非常多新闻链接,而新闻链接是新闻源内的每一篇新闻报道的实际网址。

    # 查看新闻源下面的所有新闻链接
    for article in south_paper.articles:
        print(article.url)
    
    len(south_paper.articles)      # 查看新闻链接的数量,与south_paper.size()一致
    

    输出结果:

    http://www.southcn.com/pc2018/nfrmt/node_384365.htm
    http://www.southcn.com/pc2018/xczx/node_384360.htm
    http://tech.southcn.com/t/2019-12/09/content_189747678.htm
    http://tech.southcn.com/t/2019-12/09/content_189747668.htm
    http://tech.southcn.com/t/2019-12/09/content_189747657.htm
    ...
    
    1838
    

    ​ 有一点需要注意的是,这1838条新闻链接中并不是全部链接都是对应着一篇新闻报道,有一些是只是新闻网站的子节点,子节点类似于一个新闻分类,里面装载这其他新闻的链接,它可能只有一个标题,没有新闻正文之类的内容。例如新闻链接中的第一、第二条链接,其网址也和下面几条新闻报道的网址有着较明显的区别,第一条链接对应的是《南方融媒体专区》,在newspaper里能通过.title()函数取出它的名字,但因为它没有新闻正文,所以用.text()取出的会是空字符串。

    6、提取单篇文章

    ​ 既然newspaper库能够提取新闻源里的每篇新闻报道的网址链接,那么必然能够根据这个来爬取新闻的内容,下面我们以新闻链接中的第四条链接为例,提取其中的一篇新闻报道——《创新的佛山呼唤一条创新街》。

    # 提前其中一篇文章
    one_article = south_paper.articles[3]       # 选择第四条新闻链接
    one_article.download()                      # 下载网页
    one_article.parse()                         # 解析网页
    print("标题:",one_article.title)
    print("正文:",one_article.text)
    

    输出结果:

    标题: 创新的佛山呼唤一条创新街
    正文: 钱塘江畔的杭州高新区,仅一公里长的物联网街集聚了海康威视、吉利汽车等数十家高科技企业的总部及研发部门。人才、技术、资金等创新要素在这个街区汇集。
    
    钱塘江畔的杭州高新区,仅一公里长的物联网街集聚了海康威视、吉利汽车等数十家高科技企业的总部及研发部门。人才、技术、资金等创新要素在这个街区汇集。
    
    “创新街区”这一集生活与创新于一体,高端研发机构、企业集群、孵化器汇集的城市经济空间,正以其物理空间的紧凑性、交通的通达性、技术的网络互动性等优势,逐步走进大众视野。
    
    近年来,创新街区在全球得到蓬勃发展。在国外,纽约硅巷、剑桥肯戴尔广场等街区成为科技型中小企业集聚地的典型样本;在国内,北京中关村、深圳华强北等同样是创新创业资源最为密集的特色街区。
    
    一定程度上说,创新街区是介乎创新龙头企业与高新园区的中间态,是创新集聚从“点”到“面”的龙门一跃。
    
    杭州物联网街是一个典型案例。作为杭州高新区的主导产业,物联网产业的核心技术集聚正是从这条街起步。随着海康威视、大华股份等一批龙头企业率先迁入,一批产业链上下游企业迅速涌入物联网街,行业先进技术与高端人才逐步聚集。
    
    当产业集聚发展到一定水平,街区的城市化建设也随之加速。当地不少企业员工表示,5年前物联网街两旁还是一片空地。如今,物联网街的发展已高度现代化,学校、医院、商场等生活配套十分齐全。
    
    而另一个制造业中心佛山,拥有美的、格兰仕等一批创新龙头企业,三龙湾、佛山高新区等重大创新平台也正在稳步崛起,不缺创新的“点”与“面”。然而,具有一定影响力的高水平创新街区在佛山却暂时未能涌现。
    
    早在2013年,佛山高新区就提出要打造科技一条街,探索金融和科技产业的创新融合,用10余个科技创新载体的密集建设,为佛高区打造科创新城积蓄力量。同在2013年,佛山提出要打造民间金融街,为产业发展提供金融支撑。如今,这些创新街区的雏形已现,但对标国际国内一流水平,其辐射力与集聚力仍有待提高。
    
    一个创新街区的形成离不开政府、企业与人才三大主体。一个成熟的创新街区往往能让创新创业企业获得更多知识溢出,让高端人才获得更好的生活体验,让地方政府从中获取更多综合效益。
    
    佛山在这一领域不缺资源、不缺平台,更不缺希望和未来。借鉴杭州物联网街的发展经验,佛山可通过强化规划引领突出产业功能分区,形成主业突出、分工协作、科学有序的平台格局。同时,用好用活政策工具,鼓励龙头企业发挥创新带动作用,引导上下游全产业链创新要素形成集聚。更重要的是,佛山可立足产业基础发挥优势,加速推进“城产人”融合发展,完善高端人才工作生活的配套。依托这一系列有力有效的作为,我们期待,在创新的佛山找到全新的创新街区。
    

    7、提取新闻源下所有新闻内容

    ​ 通过for循环,可以将新闻报道一篇一篇的进行加载并解析,将其内容爬取出来,因为newspaper库是属于比较简单粗暴的访问网页进行爬取,出现拒绝访问的可能性还是很大的,所以还必须得使用try试错。

    import pandas as pd         # 导入pandas库
    news_title = []
    news_text = []
    news = south_paper.articles
    for i in range(len(news)):    # 以新闻链接的长度为循环次数
        paper = news[i]
        try :
            paper.download()
            paper.parse()
            news_title.append(paper.title)     # 将新闻题目以列表形式逐一储存
            news_text.append(paper.text)       # 将新闻正文以列表形式逐一储存
        except:
            news_title.append('NULL')          # 如果无法访问,以NULL替代
            news_text.append('NULL')          
            continue
    # 建立数据表存储爬取的新闻信息
    south_paper_data = pd.DataFrame({'title':news_title,'text':news_text})
    south_paper_data
    

    输出结果(部分):

    ​ 从结果来看,newspaper此次的爬取还是非常成功的,没有出现404被拒绝访问的情况,顺利的把所有新闻报道都爬取下来了。

    展开全文
  • :newspaper: 新闻 新闻是一种简约的RSS / Atom聚合器,可保存到HTML文件。 :open_file_folder:news ├:newspaper: index.html ├:newspaper: page2.html └:newspaper: page3.html 而已! 没有数据库,没有配置...
  • 亚马逊Alexa的Chatterbox Talking Newspaper技巧 Chatterbox Norwich Talking Newspaper是一家慈善机构,为视障人士和盲人提供音频出版物。 我们的出版物使用当地报纸,杂志上的物品以及对当地人的采访记录。 该...
  • 关于newspaper的使用

    千次阅读 2020-08-28 17:50:48
    1、Newspaper框架是Python爬虫框架中在GitHub上点赞排名第三的爬虫框架,适合抓取新闻网页。它的操作非常简单易学,即使对完全没了解过爬虫的初学者也非常的友好,简单学习就能轻易上手,因为使用它不需要考虑header...

    1、Newspaper框架是Python爬虫框架中在GitHub上点赞排名第三的爬虫框架,适合抓取新闻网页。它的操作非常简单易学,即使对完全没了解过爬虫的初学者也非常的友好,简单学习就能轻易上手,因为使用它不需要考虑header、IP代理,也不需要考虑网页解析,网页源代码架构等问题。这个是它的优点,但也是它的缺点,不考虑这些会导致它访问网页时会有被直接拒绝的可能。

    ​ 总得来说,Newspaper框架并不适用于实际工程类新闻信息爬取工作,框架不稳定,爬取过程中会有各种bug,例如获取不到url、新闻信息等,但对于想获取一些新闻语料的朋友不妨一试,简单方便易上手,且不需要掌握太多关于爬虫方面的专业知识。
    newspaper的功能

    多线程文章下载框架
    新闻网址识别
    从html中提取文本
    从html中提取顶部图像
    从html中提取所有图像
    从文本中提取关键字
    从文本中提取摘要
    从文本中提取作者
    Google趋势术语提取。
    2**、如何使用newspaper**
    cmd 安装

    pip install newspaper3k
    

    Pycharm 安装
    在这里插入图片描述
    在这里插入图片描述3、抓取
    随机找一篇新闻网站去请求就可以了
    可以获取 新闻标题
    新闻正文
    新闻作者
    新闻图片
    著作时间等
    原理:先去请求网页,将网页请求后进行解析。用newspaper的属性直接获取信息就OK
    获取中国新闻网:http://www.chinanews.com/auto/2020/08-20/9269800.shtml

    在这里插入图片描述
    完整代码:

    from newspaper import Article
    
    url = 'http://www.chinanews.com/auto/2020/08-20/9269800.shtml'
    news = Article(url, language='zh')
    news .download()  #先下载
    news .parse()    #再解析
    print(news.text) #新闻正文
    print(news.title) #新闻标题
    # print(news.html)   #未修改的原始HTML
    print(news.authors)  #新闻作者
    print(news.images) #本文的“最佳图像”的URL
    # print(news.movies)  #本文电影url
    # print(news.keywords) #新闻关键词
    print(news.summary)   #从文章主体txt中生成的摘要print(news.images) #本文中的所有图像url
    # for i in news.images:
    #     print(i)
    
    展开全文
  • 报纸 一种在平板电脑上阅读印刷报纸的更快,更轻松的方法。 在线印刷报纸通常很难在平板电脑上阅读,因为它们通常是大型PDF文件,在线... Newspaper的代码是根据MIT许可证开放的,请随意添加任何所需的免费报纸,发
  • Newspaper是目前国外销量排名第一的新闻杂志类Wordpress主题,此主题中文汉化版升级到了最新版本V8.8,新版本改进挺大的,把原来的多功能插件集成到了TC编辑器插件中,添加了一些新的功能和选项,有需要的可以更新到...
  • Newspaper介绍 Newspaper是WordPress上购买最多的新闻主题。该主题是针对新闻网站的主题,但您也可以将其用于的行业。 Newspaper主题的运行速度也是在一众外贸主题有独特的流畅速度。主题杂志有80多种经过专业设计的...
  • Newspaper3k框架:文章的抓取和管理

    千次阅读 2018-12-16 10:11:01
    Newspaper是一个python3库。 注:Newspaper框架并不适用于实际工程类新闻信息爬取工作,框架不稳定,爬取过程中会有各种bug,例如获取不到url、新闻信息等,但对于想获取一些新闻语料的朋友不妨一试,简单方便易...
  • from newspaper import Article url = 'http://www.aihami.com/a/dangjian/shibada/400787.html' article = Article(url, language='zh') # Chinese article.download() article.parse() print(article.text[:]) ...
  • Newspaper:介绍 Newspaper是WordPress上购买最多的新闻主题。该主题是针对新闻网站的主题,但您也可以将其用于的行业。 Newspaper主题的运行速度也是在一众外贸主题有独特的流畅速度。主题杂志有80多种经过专业设计...
  • Newspaper 是一个很棒的python库,用于提取和整理文章。它有以下的优点:多线程文章下载框架识别新闻网址从html提取文本从html提取顶部图像从html提取所有图像从文本中提取...
  • 第二个方法是后面标红的,主要推荐用newspaper库 在导师公司,需要利用重度搜索引擎来最快的获取想要的内容,再建立语料库,于是我用python 的 beautifulsoup 和urllib 来抓取一些网页内容来...
  • Old Newspaper

    2019-10-24 14:27:34
    Old Newspaper
  • El Presursor Newspaper 弗朗西斯科·德米兰达大学学院 Internet 测试页 URL: : 或 目录 配置资产: 在 web/index.php 文件的第 74 行,你必须放置 css、img、js 和其他资源所在位置的绝对 url。 $app['asset_...
  • Newspaper 是一个很棒的 python 库,用于提取和整理文章。 它有以下的优点: 多线程文章下载框架 识别新闻网址 从 html 提取文本 从 html 提取顶部图像 从 html 提取所有图像 从文本中提取关键字 自动...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,918
精华内容 3,167
关键字:

Newspaper