11月になりようやく肌寒くなってまいりましたね。
個人的にはもう少し暖かい気候が続いてほしかったです。
暑くも寒くもない方が過ごしやすいので。
(先週末記事を書いたのですが、今週は暖かそうですね)
それはさておき今回は題の通り、
URLを与えてhtmlのリンクタグを作成するプログラムを作成した話となります。
ただそれだけのプログラムなのですが、
毎度参考のリンクのタグを手作業で作るのが面倒だったのと、
検索してみたところurlのタイトルを自動で取得してリンクタグを作成してくれるサービスは
特に見当たらなかったため、自前で作成した次第です。
今回は実行のしやすさを考えてpythonのスクリプトで作成しました。
必要なpip
pip install requests beautifulsoup4 pyperclip
作成したコード
import requests
from bs4 import BeautifulSoup
import pyperclip
import sys
# URLからhtmlのタイトルを取得
def get_html_title_from_url(url: str) -> str:
try:
response = requests.get(url)
response.raise_for_status() # HTTPエラーが発生した場合は例外を発生させる
# バイナリのcontentを渡してエンコードをよしなにしてもらう
soup = BeautifulSoup(response.content, 'html.parser')
# ページのタイトルを取得
title = soup.title.string if soup.title else 'No Title'
return title
except requests.RequestException as e:
print(f"HTTPリクエスト中にエラーが発生しました: {e}")
return ""
# URLとタイトルからhtmlのリンクタグを作成
def create_html_link(url: str, title: str) -> str:
return f'<a href="{url}" title="{title}">{title}</a>'
if __name__ == "__main__":
if len(sys.argv) != 2:
print("使用法: python create_link_tag.py URL")
else:
url = sys.argv[1]
title = get_html_title_from_url(url)
html_link = create_html_link(url, title)
print(html_link)
pyperclip.copy(html_link) # クリップボードにコピー
print("リンクがクリップボードにコピーされました。")
urlをコマンドライン引数で与えることでリンクタグが出力されます。
無精のためクリップボードにコピーまで行われます。
試しに前回の私の記事のURLを与えてみると、、、
Microsoft IMEの不具合によるSendKeysの動作不良 | 計測制御ソフト受託開発 インフォテック ブログ
<a href="https://www.infortec.co.jp/blog/archives/Item_3080" title="Microsoft IMEの不具合によるSendKeysの動作不良 | 計測制御ソフト受託開発 インフォテック ブログ">Microsoft IMEの不具合によるSendKeysの動作不良 | 計測制御ソフト受託開発 インフォテック ブログ</a>
と出力され、問題なく動作します。
これでチョット楽できます✌
ちなみに今回のコードはほとんどMicrosoft Copilotくんに指示を与えて書いてもらいました。
普段使っておらず不慣れな言語の小規模なコードを作成してもらうのに、
チャットAIは本当に便利ですね。
おかげで、面倒なちょっとした手作業をpythonやbatで自動化するのも楽に行えます。
便利な時代になりました。もっと便利になって欲しいですね!以上です。