News-Please는 거의 모든 뉴스 웹 사이트에서 구조화 된 정보를 추출하는 오픈 소스, 사용하기 쉬운 뉴스 크롤러입니다. 내부 하이퍼 링크를 재귀 적으로 따르고 RSS 피드를 읽어 가장 최근 및 오래된 보관 된 기사를 모두 가져올 수 있습니다. 뉴스 웹 사이트의 루트 URL 만 제공하기 만하면됩니다. News-Please는 스크레이프, 신문 및 가독성과 같은 여러 최첨단 라이브러리 및 도구의 힘을 결합합니다.
뉴스 제공에는 라이브러리 모드가있어 Python 개발자가 자체 프로그램 내에서 크롤링 및 추출 기능을 사용할 수 있습니다. 또한 News-Pepleas는 CommonCrawl.org의 (매우) 큰 뉴스 아카이브에서 편리하게 기어 다니고 추출 할 수 있습니다.
뉴스에 기여하려면 먼저 여기를 읽으십시오.
03/23/2021 : 뉴스 기사의 감정 분류 에 관심이 있으시면 대규모 의존적 감정 분류에 대한 대규모 데이터 세트를 확인하십시오. 또한 최첨단 성능을 달성하는 사용하기 쉬운 신경 모델을 게시합니다. 여기 프로젝트를 방문하십시오.
06/01/2018 : 뉴스에서 이벤트 추출 에 관심이 있다면, 새로운 프로젝트 인 GiveMe5W1H- 저널리즘 5 W와 하나의 h 질문에 대한 문구를 추출하여 기사의 주요 이벤트 (즉, 어디서, 어디서, 왜, 어떻게했는지를 확인하는 도구)를 확인할 수도 있습니다.
뉴스가 뉴스 기사에서 다음 속성을 추출합니다. 뉴스 제공에 의해 추출 된 예식 JSON 파일은 여기에서 찾을 수 있습니다.
News-Please는 세 가지 주요 사용 사례를 지원하며 다음과 같이 자세히 설명합니다.
python3 -m newsplease.examples.commoncrawl 실행하십시오. 매우 쉽습니다, 우리는 약속합니다!
뉴스가 Python 3.8+에서 실행됩니다.
$ pip install news-please라이브러리 모드에서 뉴스 제공을 사용하여 자신의 코드에서 하나 이상의 뉴스 기사에서 반 구조화 된 정보의 추출, 즉 뉴스 제공의 핵심 기능에 액세스 할 수 있습니다. 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 파일).
한 번에 여러 기사를 크롤링하려면 requests.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 워크 플로우를 확인하십시오. 이는 특정 뉴스 매체 및 날짜에 대한 CommonCrawl의 아카이브를 필터링하는 편리한 방법을 제공합니다).
NewsPlease . from_warc ( warc_record )라이브러리 모드에서 뉴스가 각 URL에서 정보를 다운로드하여 추출하려고 시도합니다. 이전에 설명 된 기능이 차단되고 있습니다. 즉, 뉴스가 모든 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 파일로 가서 선택한 뉴스 매체 웹 페이지의 루트 URL을 추가하십시오. 뉴스-기존은 또한 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' News-Please를 사용하면 기사를 PostgreSQL 데이터베이스 (버전 작성 기능을 포함하여 저장할 수 있습니다. PostgreSQL로 내보내려면 해당 구성 파일 (라이브러리 모드 용 config_lib.cfg 및 CLI 모드의 경우 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 의 차이점과 생산 환경을 설정하는 방법에 대한 자세한 내용은 여기를 참조하십시오.
News-Please를 사용하면 버전 작성 기능을 포함하여 Redis 데이터베이스에 기사를 저장할 수 있습니다. Redis로 내보내려면 해당 구성 파일 (라이브러리 모드 용 config_lib.cfg 및 CLI 모드 용 config.cfg )을 열고 파이프 라인에 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 (아마도 구성을 조정하려는 경우에만 거의 없음)라는 두 파일 만 처리 할 것입니다.
위키에서 사용 및 개발에 대한 자세한 정보를 찾을 수 있습니다! 저희에게 연락하기 전에 위키를 확인하십시오. 뉴스를 사용하는 방법에 대해 여전히 질문이 있다면 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를 참조하십시오.
해당 법률에 의해 요구되거나 서면에 동의하지 않는 한, 라이센스에 따라 배포 된 소프트웨어는 명시 적 또는 묵시적 보증 또는 조건없이 "그대로"기준으로 배포됩니다. 라이센스에 따른 특정 언어 통치 권한 및 제한 사항에 대한 라이센스를 참조하십시오. 뉴스가 나오는 로고는 Mario Hamborg가 제공합니다.
Copyright 2016-2024 뉴스 오프 팀