プログラミング面白れえなあ。とか言うたりして。
思った通りにちゃんと動くと感動するよ。
しかも単純作業を一瞬で終わらしてくれるし。
今回はPythonプログラムを話題のAI自動生成にチャレンジ。
正直、一から調べてコード書いていくのしんどいし、時間を短縮させたかった。
実際、何度か問題があったけど、そのたびにGPT先生とやり取りして、完成させた。
ここまでできるんだったら、もうプログラミングの勉強いらないんじゃねーの?
と思ったけど、HTMLもPythonも、最低限の知識がないと、やっぱりダメですよーん。
結果として、大量のデータを一瞬で処理できて、逆にビビった。
プログラムの仕様、というかやりたい事は以下の通り。
・俺の端末のgooglekeepメモがとんでもなく多くなっている。
・これを全てダウンロードすると、だいたい150個ぐらいのHTMLファイルと、同量のjson
ファイルになった。
・このうち、整理保存したいのは動画サイトのURLメモだ。
主に、p〇ornhub、xv〇deos、Iw〇raなどの(笑)お気に入り動画ページをブラウザの'ブックマーク'じゃなくて、keepに保存したやつである(何故なら便利だったからだ)
・これがやたら増えすぎて、何がどれだったかわかんなくなってきたし、多すぎてKeep画面で探すのが面倒。
・これらをExcelとかスプレッドシートとかで一覧表にまとめて、整理したい。
・単純なデータシートだ。動画タイトルとURLだけ。
・150個といっても全部ソレ系じゃないのでw、整理すると必要なメモは84個だった。
・一覧表にしておけばファイル一つを開けば良いし、タイトルがあって、その隣のURLからサイトに飛べば良い。
これもちょっとの量であれば、コピー&ペーストをちまちま繰り返すだけでも一覧表は作れる。
でも84個だからねえ。やってらんない。
プログラミングで、できるだけ楽したい。
今回、ダウンロードしてみて、keepメモが実はHTMLで構成されていたことに気づいた。
そうであれば、Pythonお得意の、スクレイピングでなんとかなるんじゃないか。
どうすれば、どう構成すれば良いか、皆目見当がつかなかったので、GPT先生にお伺いを立てた。
すぐにPythonコードが生成された。
実行してみると何度か詰まったけど、そのたびにエラー内容をGPT先生に報告してw
問題をクリアしてもらった。
一番引っかかったのはCSVファイルを作成するところまでは良かったんだけど、書き込みしようとするとエラーが発生するところだった。
そしてついに、うまくいったのが次のコードです。
import os
from bs4 import BeautifulSoup
import csv
def extract_data(html_content):
soup = BeautifulSoup(html_content, 'html.parser')
title_element = soup.find('div', class_='title')
link_element = soup.find('div', class_='content')
# Check if elements are found before calling .get_text()
title = title_element.get_text(strip=True) if title_element else ''
link = link_element.get_text(strip=True) if link_element else ''
return title, link
def process_html_files(input_folder, output_csv):
with open(output_csv, 'w', newline='', encoding='utf-8', errors='replace') as csv_file:
print(f"Opened CSV file: {output_csv}")
csv_writer = csv.writer(csv_file)
csv_writer.writerow(['Title', 'Link'])
for filename in os.listdir(input_folder):
if filename.endswith('.html'):
file_path = os.path.join(input_folder, filename)
with open(file_path, 'r', encoding='utf-8', errors='replace') as html_file:
html_content = html_file.read()
title, link = extract_data(html_content)
csv_writer.writerow([title, link])
if __name__ == "__main__":
#ここだけ、自分のPCの情報を入れること
input_folder = "ファイルが入っているフォルダのアドレス"
output_csv = "出力したい場所のアドレス\\output.csv"
process_html_files(input_folder, output_csv)
84個あるファイルを、適当なフォルダを作成してぶち込んでおく。
上記プログラムを稼働させると、
それら一つ一つ読み込んで解析、タイトルとURLを取り出す。
「output」というCSVファイルを作って、書き出す。
htmlの要素、タイトルかURLが読み込みできなかった場合、エラーでストップしないように処理してあるそうだ。
これを全てのファイルについて繰り返し行い、
完成したCSVファイルの内容を表計算ソフトに張り付けすれば良い。
俺の場合、スマホからも使用したかったのでスプレッドシートにした。
これでPC、スマホ両方からお好きな動画ページを視聴できるのである。
イエーイ。