Pythonを使ってWebページから情報を取得する

kzmmtmt.pgw.jp

Pythonで作ってみた

import requests
from bs4 import BeautifulSoup

url = 'http://www.nogizaka46.com/'

headers = {
    'User-Agent':
    'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko'
}

media = {'tv': 'テレビ', 'radio': 'ラジオ', 'web': 'ウェブ'}

r = requests.get(url, headers=headers)
soup = BeautifulSoup(r.content, 'html.parser')

for key in media.keys():

    print(f'[{media[key]}]')

    lis = [
        i.get_text(strip=True)
        for i in soup.select(f'div.today > ul > li > a.{key}')
    ]

    if len(lis) > 0:
        for li in lis:
            print(f'- {li}')
        else:
            print('')
    else:
        print('  出演はありません')

スクレイピングのおけるCSSセレクタ基本

サンプル

<div class="class" id="id">
    <h1>タイトル</h1>
    <h2>サブタイトル</h2>
    <p value="abc">テスト</p>
    <p value="abc def">テスト</p>
    <p value="abc-def">テスト</p>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
    </ul>
</div>

基本

書式 説明 サンプル
* すべての要素 *
要素名 要素名の要素 div
.クラス名 id属性をつけた要素 div.class
#id名 id属性をつけた要素 div#id

セレクタ同士の関係

書式 説明 サンプル
セレクタ1,セレクタ2 複数のセレクタ h1,h2
セレクタ1 セレクタ2 セレクタ1の下の階層の子孫要素セレクタ2 div li
セレクタ1 > セレクタ2 セレクタ1の直下の階層の子要素セレクタ2 div > h1
セレクタ1 + セレクタ2 セレクタ1に隣接している要素セレクタ2※同じ階層 h1 + h2
セレクタ1 ~ セレクタ2 セレクタ1のあとにある要素セレクタ2※同じ階層 p ~ ul

セレクタの属性

書式 説明 サンプル
要素[value] 特定の属性を持つ要素 p[value]
要素[value="abc"] value属性にabcという値を持つ要素 p[value="abc"]
要素[value~="abc"] value属性にabcという単語が含まれる要素(スペース区切り) p[value~="abc"]
要素[value|="abc"] value属性にabcという単語が含まれる要素(ハイフン区切り) p[value|="abc"]
要素[value^="abc"] value属性にabcで始まる要素 p[value^="abc"]
要素[value$="abc"] value属性にdefで終わる要素 p[value$="def"]
要素[value*="e"] value属性にeという文字を含む要素 p[value*="e"]
続きを読む

Minecraft Nitendo Switch版

久しぶりに攻略本買った

Minecraft Nintendo Switch版

Minecraft Nintendo Switch版

Minecraft (マインクラフト) - Switch

Minecraft (マインクラフト) - Switch

www.atmarkit.co.jp

studio.code.org