首頁 > 軟體

Python爬蟲框架NewSpaper使用詳解

2022-08-29 14:00:59

寫在前面

原計劃繼續寫一篇Portia的使用部落格,結果在編寫程式碼途中發現,在windows7的DockerToolbox裡面使用Portia錯誤實在是太多了,建議大家還是在Linux虛擬機器器或者直接在伺服器上去執行。否則太耗費精力了~

今天我們轉移一下,介紹一款newspaper

newspaper

github地址 : github.com/codelucas/n…

看名字應該能猜到和報紙/新聞有關係,這個庫主要用於文章爬取和整理,國內的一個大佬做的,當然他的github上也貼上了其他開發者的推薦

例如requests庫的作者在推特上的推薦語

"Newspaper is an amazing python library for extracting & curating articles."

The Changelog專門寫了一篇評價文章,也可以圍觀一下

Newspaper delivers Instapaper style article extraction.

對於這樣一款走出國門的爬蟲庫,我們還是很有必要介紹一下的

安裝非常簡單

pip install newspaper3k -i pypi.tuna.tsinghua.edu.cn/simple

官方檔案可以查閱:newspaper.readthedocs.io/en/latest/u…

newspaper框架的使用

對於這款框架,使用起來難度是非常低的。簡單對照這一頁檔案即可應用起來

例如:單條新聞內容獲取

第一種應用方式,直接獲取網頁內容

from newspaper import Article
url = "https://36kr.com/p/857678806293124"
article = Article(url) # 建立文章物件
article.download()        # 載入網頁
article.parse()           # 解析網頁
print(article.html) # 列印html檔案

當然還有一些其他屬性,不過該框架都是基於關鍵字識別的,有一些BUG存在,有時識別不準

# print(article.html) # 列印html檔案
print(article.text) # 新聞正文
print("-"*100)
print(article.title) # 新聞標題
print("-"*100)
print(article.authors)  # 新聞作者
print("-"*100)
print(article.summary)   # 新聞摘要
print(article.keywords) # 新聞關鍵詞
# print(article.top_image) # 本文的top_image的URL
# print(article.images) # 本文中的所有影象url

newspaper文章快取

預設情況下,newspaper快取所有待提取的文章,如果文章被爬取過之後就會清除掉它。此功能用於防止重複的文章和提高提取速度。可以使用memoize_articles引數選擇是否快取。

但當我使用下面這個辦法進行提取的時候,神奇的BUG出現了,怎麼也得不到我想要的文章了。唉~看來框架完善之路還是要繼續啊

import newspaper
url = "https://news.sina.com.cn/c/2020-08-29/doc-iivhvpwy3651884.shtml"
# article = Article(url) # 建立文章物件
# article.download()        # 載入網頁
# article.parse()           # 解析網頁
news = newspaper.build(url, language='zh', memoize_articles=False)
article = news.articles[0]
article.download()
article.parse()
print('title=',article.title)

其他功能

在應用的過程中發現確實解析存在很大的問題,不過整體的框架設計思路還是非常棒的。有點高開低走 ,看到github上的評語其實對newspaper是非常有期待的,使用之後,我建議還是使用requests然後加上bs4自己搞搞更加合理。

除了上面簡單介紹到的功能,它還有一些擴充套件,例如下面這些

  • requestsnewspaper合體解析網頁正文,也就是用requests爬取,newspaper充當解析器
  • 可以呼叫Google Trends資訊
  • 支援多工爬取
  • 支援NPL自然語言處理
  • 甚至官方檔案還給了一個Easter Eggs復活節彩蛋~,可以拉倒檔案最下面查閱

唉~總之一言難盡啊

寫在後面

本打算 Python 玩轉NewSpaper爬蟲框架,看來是玩不轉了,擴充套件一下知識點也是極好的,當然github下載原始碼之後,好好研究一下大佬的編碼規範,能學到很多。

以上就是Python爬蟲框架NewSpaper使用詳解的詳細內容,更多關於Python爬蟲框架NewSpaper的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com