99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Newspaper開源模塊的安裝和使用教程

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-16 11:22 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Newspaper 是一個很棒的python庫,用于提取和整理文章。

下面是這個開源模塊的安裝和使用教程。

1.準備

開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。

如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.

此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點:Python 編程的最好搭檔—VSCode 詳細指南。

請選擇以下任一種方式輸入命令安裝依賴

  1. Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
  2. MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
  3. 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip3 install newspaper3k

遇到任何安裝問題,可以在本文下方留言框或Python實用寶典公眾號上留言,也可以訪問項目官網(wǎng)查看相關(guān)安裝指南:
https://github.com/codelucas/newspaper

2.基本使用

Newspaper 中是以文章為對象實現(xiàn)各種操作的,比如下載指定新聞的HTML:

from newspaper import Article

url = 'http://fox13now.com/2013/12/30/new-year-new-laws-obamacare-pot-guns-and-drones/'

# 根據(jù)url生成Article對象
article = Article(url)

# 下載文章
article.download()

# 文章的HTML
article.html
#'< !DOCTYPE HTML >< html itemscope itemtype="http://...'

通過解析新聞和文章,你能獲得此文章的作者、發(fā)布時間、摘要、頂部圖像、所有圖像、多媒體等:

"""
Python 實用寶典
《Newspaper — 一個能下載38種語言新聞文章的 Python 模塊》
"""

# 解析文章
article.parse()

# 獲取文章作者
article.authors
# ['Leigh Ann Caldwell', 'John Honway']

# 獲取文章發(fā)布日期
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', ...]

除此之外,該模塊還附帶了 NLP 功能,你能用它來識別文章關(guān)鍵字并自動提取摘要:

# 使用 NLP 解析
article.nlp()

# 獲取文章關(guān)鍵詞
article.keywords
# ['New Years', 'resolution', ...]

# 獲取文章摘要
article.summary
# 'The study shows that 93% of people ...'

你看,這個工具不無敵嗎?它還能提取某個網(wǎng)站的所有新聞文章,比如我想提取CNN的新聞文章:

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

在此之上,你還能拿到CNN的其他新聞門戶分類:

for category in cnn_paper.category_urls():
    print(category)

# http://lifestyle.cnn.com
# http://cnn.com/world
# http://tech.cnn.com
# ...

許多中文媒體的文章下載也是支持的:

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)
# 新浪武漢汽車綜合 隨著汽車市場的日趨成熟,
# 傳統(tǒng)的"集全家之力抱得愛車歸"的全額購車模式已然過時,
# 另一種輕松的新興 車模式――金融購車正逐步成為時下消費者購
# 買愛車最為時尚的消費理念,他們認為,這種新穎的購車
# 模式既能在短期內(nèi)
# ...

print(article.title)
# 兩年雙免0手續(xù)0利率 科魯茲掀背金融輕松購_武漢車市_武漢汽
# 車網(wǎng)_新浪汽車_新浪網(wǎng)

從上面的例子你可以看到,你可以非常容易地提取中文文章,僅需要在Article的language參數(shù)中指定 'zh' :

"""
Python 實用寶典
《Newspaper — 一個能下載38種語言新聞文章的 Python 模塊》
"""

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])

# 香港行政長官梁振英在各方壓力下就其大宅的違章建
# 筑(僭建)問題到立法會接受質(zhì)詢,并向香港民眾道歉。
# 梁振英在星期二(12月10日)的答問大會開始之際
# 在其演說中道歉,但強調(diào)他在違章建筑問題上沒有隱瞞的
# 意圖和動機。一些親北京陣營議員歡迎梁振英道歉,
# 且認為應(yīng)能獲得香港民眾接受,但這些議員也質(zhì)問梁振英有

print(a.title)
# 港特首梁振英就住宅違建事件道歉

這個工具所支持的所有語言如下:

上滑查看更多語言

code            full namear              Arabicbe              Belarusianbg              Bulgarianda              Danishde              Germanel              Greeken              Englishes              Spanishet              Estonianfa              Persianfi              Finnishfr              Frenchhe              Hebrewhi              Hindihr              Croatianhu              Hungarianid              Indonesianit              Italianja              Japaneseko              Koreanlt              Lithuanianmk              Macedoniannb              Norwegian (Bokm?l)nl              Dutchno              Norwegianpl              Polishpt              Portuguesero              Romanianru              Russiansl              Sloveniansr              Serbiansv              Swedishsw              Swahilith              Thaitr              Turkishuk              Ukrainianvi              Vietnamesezh              Chinese

你可以按需選擇自己所需要的語言。

3.高級玩法

前面我們說過,Newspaper 是一個可以并發(fā)下載文章的框架,它是這么玩的:

"""
Python 實用寶典
《Newspaper — 一個能下載38種語言新聞文章的 Python 模塊》
"""

import newspaper
from newspaper import news_pool

slate_paper = newspaper.build('http://slate.com')
tc_paper = newspaper.build('http://techcrunch.com')
espn_paper = newspaper.build('http://espn.com')

papers = [slate_paper, tc_paper, espn_paper]
news_pool.set(papers, threads_per_source=2) # (3*2) = 總計 6 線程
news_pool.join()

# 到這一步,你可以假定三個新聞源的文章都下載完成了
print(slate_paper.articles[10].html)
# u'< html > ...'

可以看到,作者通過 build 三個新聞源,拿到一個總的新聞源池進行并發(fā)請求。

其中,.set 函數(shù)起到了調(diào)度作用,它能通過指定 threads_per_source 的值設(shè)定每個新聞源的線程。最后再 join 起來開始并發(fā)請求新聞源并開始下載新聞。

此外,Newspaper 還有一些參數(shù)可供你配置,比如:

上滑查看更多參數(shù)

keep_article_html,默認為False,“如果要保留正文文本的html,則設(shè)置為True”http_success_only,默認為True,“設(shè)置為False也可以捕獲非2XX響應(yīng)”MIN_WORD_COUNT,默認為300,“文章中的單詞數(shù)量”MIN_SENT_COUNT,默認為7,“句子數(shù)”MAX_TITLE,默認值為200,“文章標題中的字符數(shù)”MAX_TEXT,默認值為100000,“文章文字中的字符數(shù)”MAX_KEYWORDS,默認值為35,“文章中的關(guān)鍵詞數(shù)”MAX_AUTHORS,默認值為10,“文章中的作者姓名數(shù)量”MAX_SUMMARY,默認值為5000,“摘要的字符數(shù)”MAX_SUMMARY_SENT,默認為5,“摘要中的句子數(shù)”memoize_articles,默認為True,“運行后緩存并保存運行后的文章”fetch_images,默認為True,“如果不需要獲取圖片,請將其設(shè)置為false”request_timeout,默認為7,請求7秒后未響應(yīng)完成則超時number_threads,默認值為10,多線程數(shù)量

如果你需要使用以上參數(shù),可以設(shè)一個Config對象,傳入指定的 Article 對象或build 方法中,如:

import newspaper
from newspaper import Config, Article, Source

config = Config()
config.memoize_articles = False

cbs_paper = newspaper.build('http://cbs.com', config)

非常簡單易懂,而且設(shè)置起來的維護成本不算很高。

在做一些輿情分析或者NLP算法訓練/測試的時候,這個模塊簡直就是你的福音。你可以很方便地從網(wǎng)站上提取任意語言的文本數(shù)據(jù),拿來測試或者訓練都可以。

對于那些想要搞輿情分析,尋找市場熱點的同學而言,這個模塊也是非常方便,你能搭配郵件發(fā)布工具,并使用Newspaper的關(guān)鍵詞提取功能,迅速制作一個關(guān)鍵詞熱點實時告警的工具。

總而言之,這是一個非常值得了解并學習使用的第三方模塊,強烈推薦。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 模塊
    +關(guān)注

    關(guān)注

    7

    文章

    2788

    瀏覽量

    50395
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3689

    瀏覽量

    43832
  • 編輯器
    +關(guān)注

    關(guān)注

    1

    文章

    822

    瀏覽量

    32041
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    稱重模塊安裝說明

    廣州蘭瑟電子介紹稱重模塊安裝說明 機械安裝 必要時可以使用墊片調(diào)節(jié)以使力均勻地作用到每只傳感器上。 稱重模塊的頂板和底板必須調(diào)整成一直線,以保持作用到傳感器上的力方向垂直。 在稱重
    發(fā)表于 09-28 14:54 ?3442次閱讀

    DIY RTC模塊開源

    電子發(fā)燒友網(wǎng)站提供《DIY RTC模塊開源.zip》資料免費下載
    發(fā)表于 07-04 11:21 ?3次下載
    DIY RTC<b class='flag-5'>模塊</b><b class='flag-5'>開源</b>

    Arduino繼電器模塊開源分享

    電子發(fā)燒友網(wǎng)站提供《Arduino繼電器模塊開源分享.zip》資料免費下載
    發(fā)表于 08-15 09:05 ?9次下載
    Arduino繼電器<b class='flag-5'>模塊</b><b class='flag-5'>開源</b>分享

    Amanero顯示模塊開源分享

    電子發(fā)燒友網(wǎng)站提供《Amanero顯示模塊開源分享.zip》資料免費下載
    發(fā)表于 08-16 10:23 ?3次下載
    Amanero顯示<b class='flag-5'>模塊</b><b class='flag-5'>開源</b>分享

    LiDAR Lite模塊開源

    電子發(fā)燒友網(wǎng)站提供《LiDAR Lite模塊開源.zip》資料免費下載
    發(fā)表于 10-28 10:24 ?0次下載
    LiDAR Lite<b class='flag-5'>模塊</b><b class='flag-5'>開源</b>

    HC 05藍牙模塊開源分享

    電子發(fā)燒友網(wǎng)站提供《HC 05藍牙模塊開源分享.zip》資料免費下載
    發(fā)表于 11-02 14:54 ?17次下載
    HC 05藍牙<b class='flag-5'>模塊</b><b class='flag-5'>開源</b>分享

    XBee射頻模塊開源分享

    電子發(fā)燒友網(wǎng)站提供《XBee射頻模塊開源分享.zip》資料免費下載
    發(fā)表于 11-17 09:18 ?3次下載
    XBee射頻<b class='flag-5'>模塊</b><b class='flag-5'>開源</b>分享

    藍牙模塊開源分享

    電子發(fā)燒友網(wǎng)站提供《藍牙模塊開源分享.zip》資料免費下載
    發(fā)表于 11-25 09:09 ?0次下載
    藍牙<b class='flag-5'>模塊</b><b class='flag-5'>開源</b>分享

    USB供電模塊開源

    電子發(fā)燒友網(wǎng)站提供《USB供電模塊開源.zip》資料免費下載
    發(fā)表于 02-03 10:29 ?10次下載
    USB供電<b class='flag-5'>模塊</b><b class='flag-5'>開源</b>

    多板設(shè)置/安裝開源分享

    電子發(fā)燒友網(wǎng)站提供《多板設(shè)置/安裝開源分享.zip》資料免費下載
    發(fā)表于 06-16 10:06 ?0次下載
    多板設(shè)置/<b class='flag-5'>安裝</b><b class='flag-5'>開源</b>分享

    Newspaper安裝和使用教程

    中提取關(guān)鍵字 自動提取摘要 自動提取作者 自動提取 Google 趨勢詞 下面是這個開源模塊安裝和使用教程。 1.準備 開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如
    的頭像 發(fā)表于 10-17 10:36 ?1298次閱讀

    簡單實用的Keyboard模塊安裝

    keyboard 它有一個最大的優(yōu)點:純Python原生開發(fā),編譯時完全不需要依賴C語言模塊。一行命令就能完成安裝,非常方便。 1.準備 開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有
    的頭像 發(fā)表于 10-17 11:38 ?1944次閱讀
    簡單實用的Keyboard<b class='flag-5'>模塊</b>的<b class='flag-5'>安裝</b>

    Newspaper:用于提取和整理文章的python庫

    中提取關(guān)鍵字 自動提取摘要 自動提取作者 自動提取 Google 趨勢詞 下面是這個開源模塊安裝和使用教程。 1.準備 開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如
    的頭像 發(fā)表于 10-30 14:24 ?1131次閱讀

    Newspaper:能下載38種語言新聞文章的 Python 模塊

    中提取關(guān)鍵字 自動提取摘要 自動提取作者 自動提取 Google 趨勢詞 下面是這個開源模塊安裝和使用教程。 1.準備 開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如
    的頭像 發(fā)表于 10-31 11:09 ?702次閱讀

    網(wǎng)絡(luò)模塊安裝方法

    網(wǎng)絡(luò)模塊安裝方法主要包括以下幾個步驟,這些步驟將確保安裝的準確性和網(wǎng)絡(luò)模塊的穩(wěn)定運行: 準備階段: 確定網(wǎng)絡(luò)設(shè)備的型號、規(guī)格和技術(shù)參數(shù),確保所選的網(wǎng)絡(luò)
    的頭像 發(fā)表于 07-12 09:58 ?1680次閱讀