hタグ取得(スクレイピング)

機能説明

指定したURLのHタグを取得するツールです。

コード全体

下記コードをColaboratoryに貼り付け、実際の動作を確認してください。

◆コード

import requests
from bs4 import BeautifulSoup

url ='https://hidero.net/kourituka/'

dc = {}
r = requests.get(url)

if r.status_code == 200:
    soup = BeautifulSoup(r.content,'html.parser')

    dc['title'] = soup.title.string
                    
    tags = soup.find_all(['h1','h2'])

    heading_list = []

    for tag in tags:
        tagcont = tag.text.strip()
        heading_list.append(tag.name + ':' + tagcont)
    
    
    dc['heading'] = heading_list
        
    print(dc['title']) 
    
    for h in dc['heading']:
        print(h)

◆実行結果

アフィリエイトの作業効率を8倍アップするアイテム10選  |  効率よく稼ぐ副業とアフィリエイト術
h1:アフィリエイトの作業効率を8倍アップするアイテム10選
h2:クリップボード管理ツール「CLCL」でコピーを効率化
h2:ランチャーソフト「Orchis」で起動を効率化
h2:パスワード管理ツール「LastPass」でログイン作業を効率化
h2:マウスジェスチャーソフト「MouseGestureL」でマウス操作を効率化
h2:情報収集を簡単にする「Pocket」で情報収集を効率化
h2:ブラインドタッチでキー入力を効率化
h2:「Speechnotes」で文章入力を効率化
h2:オンラインストレージサービス「DropBox」
h2:Google日本語入力で文章作成を効率化
h2:ゲーミングマウス
h2:【重要】ヒデローのメルマガ特別講座
h2:関連記事

機能の説明

1.

import requests
from bs4 import BeautifulSoup

ライブラリをインポートしています。

それぞれ、以下のような機能を持っています。

requests:Http通信を行います
BeautifulSoup:HTMLからデータを取得します

2.

url ='https://hidero.net/kourituka/'

urlという変数にタグを取得したいページのURLの文字列を入力しています。

3.

dc = {}

dcという辞書型の変数を初期化しています。

4.

r = requests.get(url)

requests.getメソッドを使って指定したURLのWebページの情報を取得し、rという変数に入力しています。

5.

if r.status_code == 200:

status_codeにはWebページを取得した際の状態を知らせてくれる値が入っています。

「200」は正常に取得できたことを意味します。

つまり、if文を使って、正常に取得できた場合にのみ、それ以降の処理を行うようにしています。

6.

soup = BeautifulSoup(r.content,'html.parser')

取得したWebページの情報をBeautifulSoupライブラリを使って、HTMLの解析をしやすい形に変換しています。

7.

dc['title'] = soup.title.string

辞書型のdcの「title」キーにtitle.stringメソッドで取得した値を入力しています。

8.

tags = soup.find_all(['h1','h2'])

BeautifulSoupのfind_allメソッドを使うと、指定したタグのデータを全て抽出することができます。

ここでは、H1タグのデータとH2タグのデータを抽出し、それをtagsに入力しています。

9.

heading_list = []

heading_listという配列を初期化します。

10.

    for tag in tags:
        tagncont = tag.text.strip()
        heading_list.append(tag.name + ':' + tagcont)

tagsの要素の数だけ処理を繰り返します。

tagsの要素であるtagのテキストを取得し、同時のstripメソッドで前後の空白を削除します。

heading_listにタグの名前とその内容を連結した文字列を入力します。

11.

dc['heading'] = heading_list

辞書型のdcの「heading」キーにタグのリストを入力します。

12.

    print(dc['title']) 
    
    for h in dc['heading']:
        print(h)

printを使用して、取得した内容を出力します。

dc[‘heading’]は配列なので、

カスタマイズ

次のようなカスタマイズを行ってみてください。

1.
現在は「H1」、「H2」のタグのみ取得するプログラムになっています。

これを「H1」から「H3」まで取得するプログラムにしてください。

ヒント1を見る
以下の行を変更します。

tags = soup.find_all(['h1','h2'])

2.
現在は1つのURLのみ指定しています。

複数のURLを一気に調査できるプログラムにしてください。

例として以下の3ページのタグを一回の実行で取得するようにしてください。

!https://hidero.net/blog-entry-791/
https://hidero.net/kourituka/
https://hidero.net/serposcope-setup/
ヒント1を見る
繰り返し処理にはfor文を使用します。
ヒント2を見る
3つのURLを格納する配列変数を用意してください。


辞書型のdcにurlを追加して、ページのタイトルの下にページのURLも表示するようにしてください。

カスタマイズ前の表示:

アフィリエイトの作業効率を8倍アップするアイテム10選  |  効率よく稼ぐ副業とアフィリエイト術
h1:アフィリエイトの作業効率を8倍アップするアイテム10選
h2:クリップボード管理ツール「CLCL」でコピーを効率化
。。。。。

カスタマイズ後の表示:

アフィリエイトの作業効率を8倍アップするアイテム10選  |  効率よく稼ぐ副業とアフィリエイト術
https://hidero.net/kourituka/
h1:アフィリエイトの作業効率を8倍アップするアイテム10選
h2:クリップボード管理ツール「CLCL」でコピーを効率化
。。。。。
ヒント1を見る
urlは既に使用しているので、こちらを利用できます。

4.
自由にカスタマイズしてみてください。
「このようにカスタマイズしてみたい」という要望があって、やり方がわからない場合はチャットワークで質問してください。

タイトルとURLをコピーしました