A8.netに提出する広告掲載URLリストを全自動で取得し書き出すPythonコードを紹介します!

本日(2023年12月7日)、A8.netより広告掲載URLの提出が求められました。記事数が多い方にとっては広告掲載URLリスト生成は骨の折れる作業だと思います。そこで、A8.netの広告掲載URLを取得する手間を省くPythonスクリプトを作成しました。

この記事では、Pythonを活用してA8.netの広告URLを自動取得する方法について解説します。ぜひ参考にしてみてください。

オンラインツールも公開しています。サイトマップのURLがあれば誰でも提出用CSVファイルが出力できます。なお、オンラインツールの方はJavaScriptプログラムなので、このページで紹介しているコードとはまた別の実装をしています。

A8.netの広告掲載URLリストをPythonで生成する完成コード

早速、完成したコードを示します。

# 実行に必要なライブラリのインポート
from bs4 import BeautifulSoup
import httpx
import re
from time import sleep
from datetime import datetime
from urllib.parse import urlparse, parse_qs

# ここにサイトマップのURLを書き込んでください。
URL_sitemap = "http://miso-note.com/XXXXXXXXXXXXX"

def main():
    # 出力ファイル名です。適宜、好きな名前にしてください。
    output_f = str(datetime.now().strftime('%Y%m%d'))+"_"+"sitemap.txt"

    # サイトマップを保存するファイルを作成します。
    with open(output_f, "x", encoding='UTF-8'):
        print('サイトマップ保存ファイル生成')

    # サイトマップにアクセスします。
    res = httpx.get(URL_sitemap)
    result = res.content
    url_lists = []
    bs = BeautifulSoup(result, 'html.parser')

    # サイトマップの中から記事のURLリストを取得し、辞書に追加します。
    loc_list = bs.select('loc')
    for i in range(len(loc_list)):
        url_lists.append( re.sub(re.compile('<.*?>'), '', loc_list[i].text) )

    n_url = len(url_lists)
    print('【検索対象URL総数】\n'+str(n_url)+'件')

    # 各記事にアクセスし、その中にある広告URLを取得し、出力ファイルに結果を書き出します。
    for i in range(n_url):
        res = httpx.get(url_lists[i])
        soup = BeautifulSoup(res, 'html.parser')
        link_list_org = soup.find_all("img")
        for j in range(len(link_list_org)):
            src_link = link_list_org[j].get('src')
            if "mid=" in src_link:
                src_link_params = parse_qs(urlparse(src_link).query)
                output_txt = str( str(src_link_params["mid"])[2:20])+"  "+str(url_lists[i])
                print(output_txt)
                with open(output_f, 'a', encoding='UTF-8') as f:
                    print(output_txt, file = f)
        # サーバー負担軽減のため
        sleep(5)
    print('全処理完了')

main()

解説

Pythonファイルの作成

Pythonのインストール方法は、インターネット上に沢山情報が転がっているので詳しい説明は省略します。

  1. 公式サイトからインストーラーをダウンロードする:Pythonの公式サイトから、使用しているOSに対応した最新バージョンのインストーラーをダウンロードします。
  2. インストーラーを実行する:ダウンロードしたインストーラーをダブルクリックして実行します。Windowsの場合、「Add Python X.X to PATH」をチェックします。これにより、環境変数にPythonを追加し、パスが通るようになります。
  3. インストール設定の確認:インストール時にはいくつかの設定がありますが、通常はデフォルトのまま進めても問題ありません。必要に応じて「インストール先の変更」や「追加の機能の選択」を行います。
  4. インストールの実行:インストールを開始するために「Install」または「インストール」ボタンをクリックします。インストールが完了するまで数分から数十分かかることがあります。
  5. インストールの確認:インストールが完了したら、コマンドライン(Windowsではコマンドプロンプト、macOSではターミナル)で python –version と入力してバージョンを確認します。バージョン番号が表示されれば正常にインストールされています。

Pythonファイルの作成

Pythonの実行ファイルを作成します。visual studio codeなどエディターを使っていない場合は、メモ帳などで結構です。空っぽのメモ帳に上記の完成コードをコピペしてください。名前を付けて保存で拡張子を「py」(「ファイル名.py」となる)にします。

実行に必要なライブラリのインストール

from bs4 import BeautifulSoup
import httpx
import re
from time import sleep
from datetime import datetime
from urllib.parse import urlparse, parse_qs

完成ファイルの上部にある「from~」や「import~」という部分はPythonプログラムの実行に必要なライブラリの読み込みを行うコードです。Pythonインストール時に標準で実装されていないライブラリは手動でインストールする必要があります。その際、Windowsであればコマンドプロンプトで「pip install ライブラリ名」を実行してインストールします。例は以下の通りです。

pip install bs4
pip install httpx
pip install re
pip install time
pip install datetime
pip install urllib

ただし、筆者の環境では既に全てのライブラリがインストール済みであったため、どれが標準ライブラリか確認していません。少なくともbs4は標準ではないのでインストールが必要ですが、不安な場合は上記のpip install ~を全部やれば間違いありません。

プログラムの実行

実行ファイルを作成し、必要なライブラリもインストールしたらいよいよプログラムの実行に移ります。実行には、Windowsであればコマンドプロンプトで「py ファイル名.py」と入力してエンターを押すと実行されます。

まとめ

手動でやると途方もない作業も、自動化プログラムにより簡単に処理が出来るようになります。ここでは、細かい説明はかなり省略してしまいましたが、もし何か分からないことなどがありましたらお気軽にお問い合わせください。また、需要があれば、上記プログラムを組み込んだアプリの配布も可能です。そちらももしご興味がございましたらお問い合わせください。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です