PythonでWebスクレイピングしてみた(1)

やったこと
こまかい話
プログラムの説明

やったこと

Pythonはてなブログにログインした後に、マイページから適当な情報を取得してみた。 Webスクレイピング的な話をすると、はじめの一歩というところでしょうか。

こまかい話

実行環境は、Google Colaboratoryです。
理由として、無料かつ環境設定がそんなにいらないから。
requestsでhtml情報を取得して、BeautifulSoupでスクレイピング(情報の抽出)してます。

やりたいことが二つあるので、まずはログオンありのWebスクレイピングを試しました。
Webサイトに負荷をかけた場合には、お縄になる可能性があるので気をつけましょうね。

プログラムの説明

myページから情報が取れていることを確認できる部分だけ抽出しています。

# 必要なものをimport
import requests
from bs4 import BeautifulSoup

# ログイン情報
# CSSから根気よく探す
pram = {
    'name': 'toto01853',
    'password': 'xxxxxxxx'
}

# ログインページと今回抽出対象のURL
login_url   = 'https://www.hatena.ne.jp/login'
mypage_url  = 'https://www.hatena.ne.jp/my'

# withでセッションを立てて、内部でログインと各ページからの情報を取得
#ログインする必要がなければ、セッションも不要なので、r = s.get(mypage_url)からで問題ない
with requests.Session() as s:
  s.post(login_url, data=pram)
  r = s.get(mypage_url)
  soup = BeautifulSoup(r.content, 'html.parser')
  title = soup.find_all(['div'], class_='hatena-moduletitle')

# 取得した情報をコンソールに表示
print(title)
  • 実行結果 とりあえず、mypageから情報が取れた
[<div class="hatena-moduletitle" style="position:relative;">はてなポイント</div>, <div class="hatena-moduletitle">持っているスター数</div>, <div class="hatena-moduletitle">toto01853さんのはてなプラス利用状況</div>]