Python爬蟲框架NewSpaper使用詳解
寫在前面
原計(jì)劃繼續(xù)寫一篇Portia的使用博客,結(jié)果在編寫代碼途中發(fā)現(xiàn),在windows7的DockerToolbox里面使用Portia錯(cuò)誤實(shí)在是太多了,建議大家還是在Linux虛擬機(jī)或者直接在服務(wù)器上去運(yùn)行。否則太耗費(fèi)精力了~
今天我們轉(zhuǎn)移一下,介紹一款newspaper
newspaper
github地址 : github.com/codelucas/n…
看名字應(yīng)該能猜到和報(bào)紙/新聞?dòng)嘘P(guān)系,這個(gè)庫(kù)主要用于文章爬取和整理,國(guó)內(nèi)的一個(gè)大佬做的,當(dāng)然他的github上也貼上了其他開(kāi)發(fā)者的推薦
例如requests庫(kù)的作者在推特上的推薦語(yǔ)
"Newspaper is an amazing python library for extracting & curating articles."
The Changelog專門寫了一篇評(píng)價(jià)文章,也可以圍觀一下
Newspaper delivers Instapaper style article extraction.
對(duì)于這樣一款走出國(guó)門的爬蟲庫(kù),我們還是很有必要介紹一下的
安裝非常簡(jiǎn)單
pip install newspaper3k -i pypi.tuna.tsinghua.edu.cn/simple
官方文檔可以查閱:newspaper.readthedocs.io/en/latest/u…
newspaper框架的使用
對(duì)于這款框架,使用起來(lái)難度是非常低的。簡(jiǎn)單對(duì)照這一頁(yè)文檔即可應(yīng)用起來(lái)
例如:?jiǎn)螚l新聞內(nèi)容獲取
第一種應(yīng)用方式,直接獲取網(wǎng)頁(yè)內(nèi)容
from newspaper import Article url = "https://36kr.com/p/857678806293124" article = Article(url) # 創(chuàng)建文章對(duì)象 article.download() # 加載網(wǎng)頁(yè) article.parse() # 解析網(wǎng)頁(yè) print(article.html) # 打印html文檔
當(dāng)然還有一些其他屬性,不過(guò)該框架都是基于關(guān)鍵字識(shí)別的,有一些BUG存在,有時(shí)識(shí)別不準(zhǔn)
# print(article.html) # 打印html文檔 print(article.text) # 新聞?wù)? print("-"*100) print(article.title) # 新聞標(biāo)題 print("-"*100) print(article.authors) # 新聞作者 print("-"*100) print(article.summary) # 新聞?wù)? print(article.keywords) # 新聞關(guān)鍵詞 # print(article.top_image) # 本文的top_image的URL # print(article.images) # 本文中的所有圖像url
newspaper文章緩存
默認(rèn)情況下,newspaper緩存所有待提取的文章,如果文章被爬取過(guò)之后就會(huì)清除掉它。此功能用于防止重復(fù)的文章和提高提取速度??梢允褂?code>memoize_articles參數(shù)選擇是否緩存。
但當(dāng)我使用下面這個(gè)辦法進(jìn)行提取的時(shí)候,神奇的BUG出現(xiàn)了,怎么也得不到我想要的文章了。唉~看來(lái)框架完善之路還是要繼續(xù)啊
import newspaper url = "https://news.sina.com.cn/c/2020-08-29/doc-iivhvpwy3651884.shtml" # article = Article(url) # 創(chuàng)建文章對(duì)象 # article.download() # 加載網(wǎng)頁(yè) # article.parse() # 解析網(wǎng)頁(yè) news = newspaper.build(url, language='zh', memoize_articles=False) article = news.articles[0] article.download() article.parse() print('title=',article.title)
其他功能
在應(yīng)用的過(guò)程中發(fā)現(xiàn)確實(shí)解析存在很大的問(wèn)題,不過(guò)整體的框架設(shè)計(jì)思路還是非常棒的。有點(diǎn)高開(kāi)低走 ,看到github上的評(píng)語(yǔ)其實(shí)對(duì)newspaper是非常有期待的,使用之后,我建議還是使用requests然后加上bs4自己搞搞更加合理。
除了上面簡(jiǎn)單介紹到的功能,它還有一些擴(kuò)展,例如下面這些
requests
和newspaper
合體解析網(wǎng)頁(yè)正文,也就是用requests爬取,newspaper充當(dāng)解析器- 可以調(diào)用
Google Trends
信息 - 支持多任務(wù)爬取
- 支持NPL自然語(yǔ)言處理
- 甚至官方文檔還給了一個(gè)
Easter Eggs
復(fù)活節(jié)彩蛋~,可以拉倒文檔最下面查閱
唉~總之一言難盡啊
寫在后面
本打算 Python 玩轉(zhuǎn)NewSpaper爬蟲框架,看來(lái)是玩不轉(zhuǎn)了,擴(kuò)展一下知識(shí)點(diǎn)也是極好的,當(dāng)然github下載源碼之后,好好研究一下大佬的編碼規(guī)范,能學(xué)到很多。
以上就是Python爬蟲框架NewSpaper使用詳解的詳細(xì)內(nèi)容,更多關(guān)于Python爬蟲框架NewSpaper的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- Python7個(gè)爬蟲小案例詳解(附源碼)中篇
- Python7個(gè)爬蟲小案例詳解(附源碼)上篇
- Python爬蟲程序中使用生產(chǎn)者與消費(fèi)者模式時(shí)進(jìn)程過(guò)早退出的問(wèn)題
- Python爬蟲庫(kù)urllib的使用教程詳解
- Python利用yield?form實(shí)現(xiàn)異步協(xié)程爬蟲
- python爬蟲之requests庫(kù)使用代理方式
- python?基于aiohttp的異步爬蟲實(shí)戰(zhàn)詳解
- 通過(guò)python爬蟲mechanize庫(kù)爬取本機(jī)ip地址的方法
- Python爬蟲學(xué)習(xí)之requests的使用教程
- python爬蟲beautiful?soup的使用方式
- Python爬蟲之超級(jí)鷹驗(yàn)證碼應(yīng)用
- Python爬蟲Requests庫(kù)的使用詳情
- python爬蟲模擬登錄之圖片驗(yàn)證碼實(shí)現(xiàn)詳解
- Python爬蟲eval實(shí)現(xiàn)看漫畫漫畫柜mhgui實(shí)戰(zhàn)分析
- python爬蟲實(shí)戰(zhàn)項(xiàng)目之爬取pixiv圖片
- 使用python爬蟲實(shí)現(xiàn)子域名探測(cè)問(wèn)題
- python爬蟲之代理ip正確使用方法實(shí)例
- Python7個(gè)爬蟲小案例詳解(附源碼)下篇
相關(guān)文章
關(guān)于python2 csv寫入空白行的問(wèn)題
今天小編就為大家分享一篇關(guān)于python 2 csv寫入空白行的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06Python 列表中的修改、添加和刪除元素的實(shí)現(xiàn)
這篇文章主要介紹了Python 列表中的修改、添加和刪除元素的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06python中CURL 和python requests的相互轉(zhuǎn)換實(shí)現(xiàn)
本文主要介紹了python中CURL 和python requests的相互轉(zhuǎn)換實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03pygame實(shí)現(xiàn)一個(gè)類似滿天星游戲流程詳解
這篇文章主要介紹了使用pygame來(lái)編寫類滿天星游戲的全記錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-09-09Python實(shí)現(xiàn)打印詳細(xì)報(bào)錯(cuò)日志,獲取報(bào)錯(cuò)信息位置行數(shù)
這篇文章主要介紹了Python實(shí)現(xiàn)打印詳細(xì)報(bào)錯(cuò)日志,獲取報(bào)錯(cuò)信息位置行數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08使用Python實(shí)現(xiàn)租車計(jì)費(fèi)系統(tǒng)的兩種方法
本文通過(guò)兩種方法給大家分享了使用Python實(shí)現(xiàn)租車計(jì)費(fèi)系統(tǒng),非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-09-09python3調(diào)用ansible?api使用實(shí)例例說(shuō)明
這篇文章主要為大家介紹了python3?調(diào)用ansible?api使用說(shuō)明,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07