LoginSignup
10
17

More than 5 years have passed since last update.

【スクレイピング初心者向け】5分でできる!Qiita最新記事のタイトルを取得してみた!

Last updated at Posted at 2018-12-28

最近pythonを使い始めたのですが、「pythonと言えばスクレイピングじゃね?」という謎の考えに囚われて、Udemyの講座を買ってしまいました。という訳で、簡単にスクレイピングしてみたのでメモ。

対象者

  • スクレイピングしたことない人
  • 前々から「スクレイピングってなによ!」と気になっていた人
  • HTML/CSSの基本を理解している人
  • for文等を使って簡単なプログラムを書くことができる人

スクレイピングとは?

Webサイトから、特定のデータを取得することを指します。
今回は、Qiitaのサイトから1日のトレンド記事のタイトルをスクレイピングしてみました。
https://qiita.com/
スクリーンショット 2018-12-28 0.58.48.png

環境構築

pythonのインストール

以下のサイトからpythonをインストールしましょう。
https://www.python.org/downloads/

ターミナルで以下のコマンドを叩いて、pythonとpipがインストールされているか確認しましょう。

$ python -V
$ pip -V

seleniumのインストール

pythonでスクレイピングをする際にはBeautifulSoupかseleniumを使うことが多いみたいです。今回はseleniumをインストールして、スクレイピングを行なっていきます。

$ pip install selenium

さあスクレイピング!

スクレイピングの基本的な考え方は

1. どこのサイトの
2. どこの要素に
3. どのような処理をかけるのか

です。以下の完成コードをコメントとともに見ていきましょう。

qiita.py
# seleniumからwebdriverをimportする。
# webdriverを使って、ブラウザの操作をする。
from selenium import webdriver

# webdriverを使って、Google Chromeを開く。
browser = webdriver.Chrome()
# Qiitaのトップページにアクセスする。
browser.get('https://qiita.com/')

# Qiitaのトップページの中にある、classの名前が
# tr-Item_titleであるタグの情報を取得する。
items = browser.find_elements_by_class_name('tr-Item_title')

# 取得した複数の記事タイトルをfor文で展開する。
print('------') # 出力結果をわかりやすくするための記号列
for item in items:
    print(item.text) # item.textとすればタイトルを取ることができる。
    print('------') # 出力結果をわかりやすくするための記号列

# ブラウザを閉じる。
browser.close()

今回は、以下のようなことを行なっています。

1. https://qiita.com/
2. class名tr-Item_titleから
3. textの情報を取得する

ターミナル上で以下のように打ち込むと、1日のトレンド記事のタイトルを取得することができます。

$ python qiita.py

出力結果↓
スクリーンショット 2018-12-28 1.18.36.png

もっとスクレイピングしていきたい

Qiitaの記事タイトルをスクレイピングしてみましたが、多分もっと有益に使うやり方があるはず。今回の勉強で基本は抑えた気がしてるので、次回何か思いついたらまたスクレイピングしてみたいと思います。

10
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
17