在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

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

科技綠洲 ? 來源:Python實用寶典 ? 作者:Python實用寶典 ? 2023-10-30 14:24 ? 次閱讀

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

它有以下的優點:

  • 多線程文章下載框架
  • 識別新聞網址
  • 從html提取文本
  • 從html提取頂部圖像
  • 從html提取所有圖像
  • 從文本中提取關鍵字
  • 自動提取摘要
  • 自動提取作者
  • 自動提取 Google 趨勢詞

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

1.準備

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

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

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

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

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

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

2.基本使用

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

from newspaper import Article

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

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

# 下載文章
article.download()

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

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

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

# 解析文章
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', ...]

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

# 使用 NLP 解析
article.nlp()

# 獲取文章關鍵詞
article.keywords
# ['New Years', 'resolution', ...]

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

你看,這個工具不無敵嗎?它還能提取某個網站的所有新聞文章,比如我想提取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)
# 新浪武漢汽車綜合 隨著汽車市場的日趨成熟,
# 傳統的"集全家之力抱得愛車歸"的全額購車模式已然過時,
# 另一種輕松的新興 車模式――金融購車正逐步成為時下消費者購
# 買愛車最為時尚的消費理念,他們認為,這種新穎的購車
# 模式既能在短期內
# ...

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

從上面的例子你可以看到,你可以非常容易地提取中文文章,僅需要在Article的language參數中指定 '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])

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

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 是一個可以并發下載文章的框架,它是這么玩的:

"""
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 三個新聞源,拿到一個總的新聞源池進行并發請求。

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

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

上滑查看更多參數

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

如果你需要使用以上參數,可以設一個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)

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

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

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

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

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

    關注

    7

    文章

    2736

    瀏覽量

    47791
  • 數據分析
    +關注

    關注

    2

    文章

    1461

    瀏覽量

    34184
  • python庫
    +關注

    關注

    0

    文章

    5

    瀏覽量

    2157
收藏 人收藏

    評論

    相關推薦

    Python爬蟲與Web開發盤點

    Python爬蟲和Web開發均是與網頁相關的知識技能,無論是自己搭建的網站還是爬蟲爬去別人的網站,都離不開相應的Python,以下是常用的Python爬蟲與Web開發
    發表于 05-10 15:21

    【建議收藏】Python大全

    API。云計算picloud -云端執行Python代碼。dominoup.com -云端執行R,Python和matlab代碼網頁內容提取提取網頁內容的
    發表于 09-06 15:58

    各種編程語言的深度學習整理

    本文總結了Python、Matlab、CPP、Java、JavaScript、Lua、Julia、Lisp、Haskell、.NET、R等語言的深度學習,趕緊收藏吧! Python 1.
    發表于 08-30 10:20 ?2723次閱讀

    基于python語言下的的機器學習

    本文的目的就是列舉并描述Python可用的最有用的機器學習工具和。這也僅僅是拋磚引玉,希望大家能提供更多的線索,來匯總整理一套Python網頁爬蟲,文本處理,科學計算,機器學習和數據
    發表于 01-05 18:45 ?1055次閱讀

    如何從HTML或XML文件中提取數據的Python爬蟲Beautiful Soup概述

    Beautiful Soup是一個可以從HTML或XML文件中提取數據的Python,簡單來說,它能將HTML的標簽文件解析成樹形結構,然后方便地獲取到指定標簽的對應屬性。
    的頭像 發表于 07-29 09:56 ?2.6w次閱讀

    分享5個用于圖像處理的Python

    圖像處理是操縱圖像以從中提取特征的現象。 在當今計算機視覺和深度學習的世界中,大量使用不同的圖像處理算法對圖像數據集進行邊緣檢測、識別和分類。 有時,這些算法也會逐幀應用于視頻,以從中提取
    的頭像 發表于 02-08 16:23 ?1440次閱讀
    分享5個<b class='flag-5'>用于</b>圖像處理的<b class='flag-5'>Python</b><b class='flag-5'>庫</b>

    如何安裝常用Python

    Python作為一種流行的編程語言,擁有豐富的第三方資源,這些可以幫助開發者輕松實現各種功能,從數據分析到Web開發,從機器學習到圖像處理,涵蓋了各個領域。在Python的開發過程
    的頭像 發表于 04-14 12:11 ?1218次閱讀

    SQLite數據python的區別

    SQLite數據python的區別 SQLite是一種輕量級關系型數據管理系統,是一個嵌入式的數據引擎。Python是一種高級編程語
    的頭像 發表于 08-28 16:41 ?923次閱讀

    python有什么用 如何用python創建數據

    python有什么用 如何用python創建數據 Python是一種高級編程語言,可以用于開發各種類型的應用程序和工具。它的廣泛應用使它在
    的頭像 發表于 08-28 16:41 ?1242次閱讀

    python讀取數據數據 python查詢數據 python數據連接

    python讀取數據數據 python查詢數據 python數據連接
    的頭像 發表于 08-28 17:09 ?1915次閱讀

    如何使用Python和PinPong控制Arduino

    Python程序員在編程Arduino時面臨的第一個挑戰是語言不同。Arduino IDE使用的是受C和C++啟發的語言。實際上,像Arduino這樣的平臺與Python非常搭配,特別適用于需要
    的頭像 發表于 10-13 10:59 ?1074次閱讀
    如何使用<b class='flag-5'>Python</b>和PinPong<b class='flag-5'>庫</b>控制Arduino

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

    Newspaper 是一個很棒的python用于提取整理文章。 下面是這個開源模塊的安裝和
    的頭像 發表于 10-16 11:22 ?716次閱讀

    Newspaper安裝和使用教程

    Newspaper 是一個很棒的python用于提取整理文章。 它有以下的優點: 多線程文
    的頭像 發表于 10-17 10:36 ?890次閱讀

    Bulbea:用于股票市場預測和建模的Python

    Bulbea 是一個基于深度學習開發的,用于股票市場預測和建模的Python。 Bulbea 自帶了不少可用于股票深度學習訓練及測試的API,并且易于對數據進行擴展和延申,構建屬于我
    的頭像 發表于 10-17 11:01 ?557次閱讀
    Bulbea:<b class='flag-5'>用于</b>股票市場預測和建模的<b class='flag-5'>Python</b><b class='flag-5'>庫</b>

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

    Newspaper 是一個很棒的python用于提取整理文章。 它有以下的優點: 多線程文
    的頭像 發表于 10-31 11:09 ?496次閱讀
    主站蜘蛛池模板: 天天天天添天天拍天天谢 | 黄色片日本网站 | 亚洲午夜视频 | 91福利专区 | 日韩一级欧美一级一级国产 | 亚洲影视大全 | 午夜在线观看cao | 国产成人综合自拍 | 性欧美日韩 | 国产男靠女免费视频网站 | 日韩高清性爽一级毛片免费 | 丁香婷婷啪啪 | 天天综合网久久 | 热99视频| 久久国产伦三级理电影 | 亚洲成a人片8888kkkk | 黄免费看 | 一区二区三区高清在线观看 | 色婷婷在线视频观看 | 怡红院色视频在线 | 性做久久久久久久 | 最新午夜宅男 | 久久综合久久精品 | 日本国产中文字幕 | 五月婷婷深爱 | 色婷婷亚洲精品综合影院 | 免费看国产精品久久久久 | 午夜黄色小视频 | 日本免费网站在线观看 | 国产精品久久1024 | 久久精品乱子伦免费 | 偷操 | 久久亚洲精品国产精品婷婷 | 天天干狠狠操 | 米奇777四色精品人人爽 | 伊人久久天堂 | 国产精品视频网站你懂得 | 天天透天天干 | 女人本色高清在线观看wwwwww国产 | 狠狠色噜噜狠狠狠狠97影音先锋 | 二区中文字幕 |