新聞 - 請教是一個開源,易於使用的新聞視術,它幾乎從任何新聞網站提取結構化信息。它可以遞歸地遵循內部超鏈接並讀取RSS feed,以獲取最新和舊的存檔文章。您只需要提供新聞網站的根網址即可完全爬網。新聞合併結合了多個最先進的庫和工具的力量,例如砂紙,報紙和可讀性。
新聞求職還具有庫模式,該模式允許Python開發人員在自己的程序中使用爬行和提取功能。此外,新聞 - 途徑可以方便地從commoncrawl.org的(非常)大新聞檔案中提取文章。
如果您想為新聞 - 請做出貢獻,請先在此處閱讀。
03/23/2021:如果您對新聞文章中的情感分類感興趣,請查看我們的大規模數據集以進行目標依賴性情感分類。我們還發布了一種易於使用的神經模型,可實現最先進的性能。在這裡訪問該項目。
06/01/2018:如果您對從新聞提取事件感興趣,您可能還想查看我們的新項目Giveme5w1h - 一種提取短語的工具,可以回答新聞學的五個W和一個H問題,以描述文章的主要事件,即誰在做什麼,何時何地,何處,原因,以及以及如何以及如何做。
新聞 - 提取新聞文章中的以下屬性。可以在此處找到由新聞please提取的示例JSON文件。
新聞 - 借助三個主要用例,在下文中更詳細地進行了解釋。
python3 -m newsplease.examples.commoncrawl 我們保證,這非常容易!
新聞 - please在Python 3.8+上運行。
$ pip install news-please您可以通過在圖書館模式下使用新聞 - 播放,從您自己的代碼中訪問新聞 - 結構化信息的核心功能,即從一個或多個新聞文章中提取半結構化信息。如果您想使用新聞雜誌的完整網站提取(僅給定根URL)或連續爬行模式(使用RSS),則需要使用CLI模式,這是稍後描述的。
from newsplease import NewsPlease
article = NewsPlease . from_url ( 'https://www.nytimes.com/2017/02/23/us/politics/cpac-stephen-bannon-reince-priebus.html?hp' )
print ( article . title )可以在此處找到提取物品的樣本(作為JSON文件)。
如果您想一次抓取多個文章,請選擇使用Request.Request()獲取的任何可選參數
NewsPlease . from_urls ([ url1 , url2 , ...], request_args = { "timeout" : 6 })或者,如果您有一個包含所有URL的文件(每行包含一個URL)
NewsPlease . from_file ( path )或者,如果您有原始的HTML數據(還可以提供原始URL以提高提取發布日期的準確性)
NewsPlease . from_html ( html , url = None )或者,如果您有一個WARC文件(還請查看我們的CommonCrawl Workflow,它提供了方便的方法來過濾CommonCrawl的檔案,以適用於特定的新聞媒體和日期)
NewsPlease . from_warc ( warc_record )在圖書館模式下,新聞please將嘗試從每個URL下載和提取信息。一旦新聞please嘗試所有URL,先前描述的功能將阻止,即,將返回。結果列表包含所有成功提取的文章。
最後,您可以處理文章對像中包含的提取信息。例如,要導出為JSON格式,您可以使用:
import json
with open ( "article.json" , "w" ) as file :
json . dump ( article . get_serializable_dict (), file )$ news-please新聞 - 請開始爬行一些示例頁。要終止該過程按CTRL+C 。隨後,新聞求職將在5-60秒內關閉。您也可以兩次按CTRL+C ,這將立即殺死該過程(不推薦使用)。
結果默認存儲在data文件夾中的JSON文件中。在默認配置中,新聞 - 請存儲原始的HTML文件。
您最有可能不想從我們示例配置中提供的網站上爬網。只需轉到sitelist.hjson文件,然後添加您選擇的新聞媒體網頁的根網址即可。新聞求職還可以從GDELT項目中提取最新事件,請參見此處。
新聞求職還支持出口到Elasticsearch。使用Elasticsearch還將啟用版本控制功能。首先,在配置目錄的config.cfg中啟用它,默認情況下是~/news-please/config ,但也可以將-c參數更改為自定義位置。如果目錄不存在,將在指定的位置創建默認目錄。
[Scrapy]
ITEM_PIPELINES = {
'newsplease.pipeline.pipelines.ArticleMasterExtractor' :100 ,
'newsplease.pipeline.pipelines.ElasticsearchStorage' :350
}就是這樣!除了您的Elasticsearch數據庫未位於http://localhost:9200 ,使用其他用戶名/密碼或CA認證身份驗證。在這些情況下,您還需要更改以下內容。
[Elasticsearch]
host = localhost
port = 9200
...
# Credentials used for authentication (supports CA-certificates):
use_ca_certificates = False # True if authentification needs to be performed
ca_cert_path = '/path/to/cacert.pem'
client_cert_path = '/path/to/client_cert.pem'
client_key_path = '/path/to/client_key.pem'
username = 'root'
secret = 'password'新聞合格允許將文章存儲到PostgreSQL數據庫中,包括版本控制功能。要導出到PostgreSQL,請打開相應的config File(for Library Mode和CLI模式的config_lib.cfg和config.cfg ),然後將PostgreSqlStorage模塊添加到管道中,然後調整數據庫憑據:
[Scrapy]
ITEM_PIPELINES = {
'newsplease.pipeline.pipelines.ArticleMasterExtractor' :100 ,
'newsplease.pipeline.pipelines.PostgresqlStorage' :350
}
[Postgresql]
# Postgresql-Connection required for saving meta-informations
host = localhost
port = 5432
database = 'news-please'
# schema = 'news-please'
user = 'user'
password = 'password'如果您打算在生產環境中使用新聞呼吸及其導出到PostgreSQL,我們建議卸載psycopg2-binary包裝並安裝psycopg2 。我們使用前者,因為它不需要C編譯器即可安裝。請參閱此處,有關psycopg2和psycopg2-binary之間的差異以及如何設置生產環境的更多信息。
新聞合格允許將文章存儲在REDIS數據庫中,包括版本控制功能。要導出到REDIS,請打開相應的配置文件( config_lib.cfg for Library Mode config.cfg CLI模式),然後將RedisStorage模塊添加到管道中並調整連接憑據:
[Scrapy]
ITEM_PIPELINES = {
'newsplease.pipeline.pipelines.ArticleMasterExtractor' :100 ,
'newsplease.pipeline.pipelines.RedisStorage' :350
}
[Redis]
host = localhost
port = 6379
db = 0
# You can add any redis connection parameter here
ssl_check_hostname = True
username = "news-please"
max_connections = 24該管道也應與AWS Elasticache和GCP MemoryStore兼容
我們為用戶和開發人員收集了許多有用的信息。作為用戶,您很可能只處理兩個文件: sitelist.hjson (定義要爬行的站點)和config.cfg (如果您想調整配置,則很少只有很少的情況)。
您可以在Wiki中找到有關使用和開發的更多信息!在與我們聯繫之前,請查看Wiki。如果您仍然有關於如何使用新聞 - 興趣的疑問,請在Github上的討論中創建一個新問題。請了解,我們無法通過電子郵件提供個人支持。我們認為,如果公開共享幫助,則幫助更多的人可以從中受益。但是,如果您仍然需要個人支持,例如,由於您的項目機密性,我們也許可以為您提供私人諮詢。請與我們聯繫以獲取有關定價和更多詳細信息的信息。
對於錯誤報告,我們要求您使用錯誤報告模板。確保您使用的是最新版本的新聞 - 振動,因為我們不能支持舊版本。如前所述,我們不能支持電子郵件發送的問題或問題。
非常感謝您的捐款!他們將釋放我們更多地從事該項目,以執行諸如添加新功能,錯誤支持以及解決圖書館的其他問題之類的任務。
沒有以下學生的貢獻(按字母順序排列),該項目是不可能的:
我們還感謝所有其他貢獻者,您可以在貢獻者頁面上找到!
如果您正在使用新聞 - 請參考我們的論文(ResearchGate,Mendeley):
@InProceedings{Hamborg2017,
author = {Hamborg, Felix and Meuschke, Norman and Breitinger, Corinna and Gipp, Bela},
title = {news-please: A Generic News Crawler and Extractor},
year = {2017},
booktitle = {Proceedings of the 15th International Symposium of Information Science},
location = {Berlin},
doi = {10.5281/zenodo.4120316},
pages = {218--223},
month = {March}
}
您可以在我們網站上找到有關此和其他新聞項目的更多信息。
您想貢獻嗎?太好了,我們總是為此項目的任何支持感到高興!我們特別正在尋找解決錯誤的拉動請求。我們還歡迎提出自己想法的拉力請求。
通過為該項目做出貢獻,您同意您的捐款將根據項目許可獲得許可。
我們喜歡用戶的貢獻!如果您打算提交拉動請求,請先開設一個問題,並在要解決的問題或要改進的問題以及如何解決問題上!這樣,我們可以首先討論是否可以將您的想法添加到新聞 - 如果是的話,最好如何實現它以適應架構和編碼樣式。在該問題中,請指出您打算實施所描述的功能。
不幸的是,我們沒有資源來實現用戶要求的功能。相反,我們建議您實現所需的功能,如果您想在此處打開拉動請求,以便社區也可以從您的改進中受益。
根據Apache許可證(版本2.0(“許可”)獲得許可;除非符合許可,否則您不得使用新聞呼籲。該許可證的副本包含在項目中,請參見文件許可證。txt。
除非適用法律要求或以書面形式同意,否則根據許可證分配的軟件是按照“原樣”分發的,沒有任何明示或暗示的任何形式的保證或條件。請參閱許可證,以獲取執行許可條款和限制的特定語言。新聞please徽標由馬里奧·漢堡(Mario Hamborg)提供。
版權所有2016 - 2024年新聞合作團隊