この記事では、Pythonを使用してニュース記事をクロールする方法について説明します。これは、便利な新聞のパッケージを使用して行うことができます。
pipを使用して、新聞パッケージをインストールできます。
pip install newspaper
インストールが完了したら、開始できます。新聞は、特定のURLから記事を取得するか、Web上の他のニュースへのリンクを見つけることで機能します。記事を扱うことから始めましょう。まず、* Article クラスをインポートする必要があります。次に、このクラスを使用して、URLからニュース記事にコンテンツをダウンロードします。次に、 parse メソッドを使用してHTMLを解析します。最後に、。text *を使用して記事のテキストを印刷できます。
from newspaper import Article
url ="https://www.bloomberg.com/news/articles/2020-08-01/apple-buys-startup-to-turn-iphones-into-payment-terminals?srnd=premium"
# download and parse article
article =Article(url)
article.download()
article.parse()
# print article text
print(article.text)
投稿に埋め込まれた画像や動画へのリンクなど、記事に関するその他の情報を取得することもできます。
# get list of image links
article.images
# get list of videos - empty inthiscase
article.movies
それでは、すべてのニュース記事をWebページにリンクする方法を見てみましょう。これを実現するために、次の* news.build メソッドを使用します。次に、 article_urls *メソッドを使用して記事のURLを抽出できます。
import newspaper
site = newspaper.build("https://news.ycombinator.com/")
# get list of article URLs
site.article_urls()
上記のオブジェクトを使用して、各記事のコンテンツを取得することもできます。ここでは、すべての記事オブジェクトが* list.site.articles *に保存されています。たとえば、最初の記事の内容を取得しましょう。
site_article = site.articles[0]
site_article.download()
site_article.parse()print(site_article.text)
それでは、コードを変更して上位10件の記事を取得しましょう。
top_articles =[]for index inrange(10):
article = site.articles[index]
article.download()
article.parse()
top_articles.append(article)
新聞を使用する場合、重要な注意点は、同じURLで* newspaper.build を複数回実行する場合、
パッケージはキャッシュされ、スクレイプされた記事は削除されます。たとえば、以下のコードでは、 Newspaper.build *を2回実行すると、異なる結果が得られます。 2回目に実行すると、コードは新しく追加されたリンクのみを返します。
site = newspaper.build("https://news.ycombinator.com/")print(len(site.articles))
site = newspaper.build("https://news.ycombinator.com/")print(len(site.articles))
以下に示すように、関数呼び出しにパラメーターを追加することで調整できます。
site = newspaper.build("https://news.ycombinator.com/", memoize_articles=False)
新聞パッケージは、いくつかのNLP機能もサポートしています。 * nlp *メソッドを呼び出すことで確認できます。
article = top_articles[3]
article.nlp()
それでは、* summary *メソッドを使用しましょう。これにより、記事の概要が返されます。
article.summary()
記事からキーワードのリストを取得することもできます。
article.keywords
新聞には他にもいくつかのクールな機能があります。たとえば、* hot *メソッドを使用すると、Googleで最も人気のある検索を簡単に引き付けることができます。
newspaper.hot()
以下に示すように、パッケージは人気のあるURLのリストを返すこともできます。
newspaper.popular_urls()
Recommended Posts