38の言語でニュース記事をダウンロードするように教えてください-新聞

Newspaperは、記事を抽出して整理するための優れたPythonライブラリです。

次の利点があります。

  • マルチスレッドの記事ダウンロードフレームワーク
  • ニュースのURLを特定する
  • HTMLからテキストを抽出します
  • HTMLからトップ画像を抽出します
  • HTMLからすべての画像を抽出します
  • テキストからキーワードを抽出する
  • 抄録の自動抽出
  • 著者を自動的に抽出する
  • Googleトレンドワードを自動的に抽出します

以下は、このオープンソースモジュールのインストールと使用法のチュートリアルです。

1.準備

開始する前に、Pythonとpipがコンピューターに正常にインストールされていることを確認する必要があります。インストールされていない場合は、次の記事にアクセスしてください:インストールするための超詳細なPythonインストールガイド。

データ分析にPythonを使用する場合は、Anacondaを直接インストールできます。Pythonデータ分析とマイニングの優れたヘルパーであるAnacondaには、Pythonとpipが組み込まれています。

さらに、VSCodeエディターを使用することをお勧めします。これには多くの利点があります。Pythonプログラミングの最良のパートナー-VSCode詳細ガイド。

依存関係をインストールするためのコマンドを入力するには、次の方法のいずれかを選択してください
1. Cmdを([スタート] - [実行-CMD)Windows環境で。
2. MacOS環境でターミナルを開きます(コマンド+スペースでターミナルに入ります)。
3. VSCodeエディターまたはPycharmを使用している場合は、インターフェースの下部にあるターミナルを直接使用できます。

pip3はnewspaper3kをインストールします

インストールの問題が発生した場合は、この記事の下部にあるメッセージボックスを残すことができます

多くの人がPythonを学び、どこから始めればよいのかわかりません。
多くの人がPythonを学び、基本的な文法を習得した後、どこから始めればよいかわかりません。
事例研究を行った多くの人々は、より高度な知識を学ぶ方法を知りません。
したがって、これら3つのタイプの人々のために、ビデオチュートリアル、電子書籍、およびコースのソースコードを無料で受け取ることができる優れた学習プラットフォームを提供します。
QQグループ:705933274

2.基本的な使用法

新聞は、指定されたニュースの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 之眼
"""

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

 

ほら、このツールは無敵ですか?また、特定のWebサイトからすべてのニュース記事を抽出することもできます。たとえば、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の言語パラメーターで「zh」を指定するだけです。

"""
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.高度なゲームプレイ

先に述べたように、新聞は記事を同時にダウンロードできるフレームワークです。次のように再生されます。

"""
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> ...'

 

著者は、3つのニュースソースを構築することにより、同時リクエストの合計ニュースソースプールを取得していることがわかります。

その中で、.set関数はスケジューリングの役割を果たし、threads_per_sourceの値を指定することで各ニュースソースのスレッドを設定できます。最後に、ニュースソースのリクエストを同時に開始し、参加時にニュースのダウンロードを開始します。

さらに、新聞には、次のような設定可能なパラメータがいくつかあります。

その他のパラメータを表示するには、左にスワイプします

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オブジェクトまたはビルドメソッドに渡すことができます。

import newspaper
from newspaper import Config, Article, Source

config = Config()
config.memoize_articles = False

cbs_paper = newspaper.build('http://cbs.com', config)

 

非常にシンプルでわかりやすく、セットアップのメンテナンスコストはそれほど高くありません。

世論分析またはNLPアルゴリズムのトレーニング/テストを行う場合、このモジュールは単にあなたの福音です。テストやトレーニングのために、Webサイトから任意の言語のテキストデータを簡単に抽出できます。

このモジュールは、世論分析を行って市場のホットスポットを見つけたい人にも非常に便利です。メール発行ツールと新聞のキーワード抽出機能を使用して、キーワードホットスポットのリアルタイムアラートツールをすばやく作成できます。

全体として、これは知っておく価値のあるサードパーティのモジュールであり、使用方法を学ぶことを強くお勧めします。

Newspaperは、記事を抽出して整理するための優れたPythonライブラリです。

次の利点があります。

  • マルチスレッドの記事ダウンロードフレームワーク
  • ニュースのURLを特定する
  • HTMLからテキストを抽出します
  • HTMLからトップ画像を抽出します
  • HTMLからすべての画像を抽出します
  • テキストからキーワードを抽出する
  • 抄録の自動抽出
  • 著者を自動的に抽出する
  • Googleトレンドワードを自動的に抽出します

以下は、このオープンソースモジュールのインストールと使用法のチュートリアルです。

1.準備

開始する前に、Pythonとpipがコンピューターに正常にインストールされていることを確認する必要があります。インストールされていない場合は、次の記事にアクセスしてください:インストールするための超詳細なPythonインストールガイド。

データ分析にPythonを使用する場合は、Anacondaを直接インストールできます。Pythonデータ分析とマイニングの優れたヘルパーであるAnacondaには、Pythonとpipが組み込まれています。

さらに、VSCodeエディターを使用することをお勧めします。これには多くの利点があります。Pythonプログラミングの最良のパートナー-VSCode詳細ガイド。

依存関係をインストールするためのコマンドを入力するには、次の方法のいずれかを選択してください
1. Cmdを([スタート] - [実行-CMD)Windows環境で。
2. MacOS環境でターミナルを開きます(コマンド+スペースでターミナルに入ります)。
3. VSCodeエディターまたはPycharmを使用している場合は、インターフェースの下部にあるターミナルを直接使用できます。

pip3はnewspaper3kをインストールします

インストールの問題が発生した場合は、この記事の下部にあるメッセージボックスを残すことができます

多くの人がPythonを学び、どこから始めればよいのかわかりません。
多くの人がPythonを学び、基本的な文法を習得した後、どこから始めればよいかわかりません。
事例研究を行った多くの人々は、より高度な知識を学ぶ方法を知りません。
したがって、これら3つのタイプの人々のために、ビデオチュートリアル、電子書籍、およびコースのソースコードを無料で受け取ることができる優れた学習プラットフォームを提供します。
QQグループ:705933274

2.基本的な使用法

新聞は、指定されたニュースの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 之眼
"""

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

 

ほら、このツールは無敵ですか?また、特定のWebサイトからすべてのニュース記事を抽出することもできます。たとえば、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の言語パラメーターで「zh」を指定するだけです。

"""
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.高度なゲームプレイ

先に述べたように、新聞は記事を同時にダウンロードできるフレームワークです。次のように再生されます。

"""
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> ...'

 

著者は、3つのニュースソースを構築することにより、同時リクエストの合計ニュースソースプールを取得していることがわかります。

その中で、.set関数はスケジューリングの役割を果たし、threads_per_sourceの値を指定することで各ニュースソースのスレッドを設定できます。最後に、ニュースソースのリクエストを同時に開始し、参加時にニュースのダウンロードを開始します。

さらに、新聞には、次のような設定可能なパラメータがいくつかあります。

その他のパラメータを表示するには、左にスワイプします

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オブジェクトまたはビルドメソッドに渡すことができます。

import newspaper
from newspaper import Config, Article, Source

config = Config()
config.memoize_articles = False

cbs_paper = newspaper.build('http://cbs.com', config)

 

非常にシンプルでわかりやすく、セットアップのメンテナンスコストはそれほど高くありません。

世論分析またはNLPアルゴリズムのトレーニング/テストを行う場合、このモジュールは単にあなたの福音です。テストやトレーニングのために、Webサイトから任意の言語のテキストデータを簡単に抽出できます。

このモジュールは、世論分析を行って市場のホットスポットを見つけたい人にも非常に便利です。メール発行ツールと新聞のキーワード抽出機能を使用して、キーワードホットスポットのリアルタイムアラートツールをすばやく作成できます。

全体として、これは知っておく価値のあるサードパーティのモジュールであり、使用方法を学ぶことを強くお勧めします。

自分で作成したPython学習QQグループ:705933274を引き続きお勧めします。グループはすべてPythonを学習しています。Pythonを学習したい、または学習している場合は、ぜひ参加してください。誰もがソフトウェア開発パーティーであり、乾物を共有しています。時々(Pythonソフトウェア開発にのみ関連します)、最新のPythonの高度な資料のコピーや、2021年に自分で編集したゼロベースの教育を含みます。Pythonに興味のある上級者や友人の参加へようこそ!

 

 

おすすめ

転載: blog.csdn.net/pyjishu/article/details/115023342