はじめに
基本的な属性一覧は以下から参照することが可能です。
しかし、こちらに列挙されていない属性も存在します。
この記事ではMDN Web Docsから取得できるHTML要素の属性を列挙します。
結果
取得するためのコード
Pythonでスクレイピングを行いました。
# %%
import requests
from bs4 import BeautifulSoup
from time import sleep
from collections import defaultdict
# %%
def get(url):
sleep(4)
return requests.get(url)
def fetch(url):
response = get(url)
return BeautifulSoup(response.text, "html.parser")
def ok(url):
response = get(url)
return response.status_code // 100 == 2
# %%
base_url = "https://developer.mozilla.org"
url = "/en-US/docs/Web/HTML/Element"
soup = fetch(base_url + url)
anchors = soup.select("td:first-child a")
urls = {a.get_text(): url for a in anchors if (url := a.attrs.get("href")) is not None}
# %%
attrs = defaultdict(list)
for tag, url in urls.items():
if url is None:
continue
soup = fetch(base_url + url)
codes = soup.select("#attributes+div dt code")
for code in codes:
attr = code.get_text().strip('"')
attrs[attr].append(tag)
# %%
print("|attr|tags|")
print("|:--|:--|")
def ref(label, url):
return f"[{label}]({url})"
attr_base_url = base_url + "/en-US/docs/Web/HTML/Attributes/"
for attr in sorted(attrs):
tags = attrs[attr]
attr_url = attr_base_url + attr
if not ok(attr_url):
tag = tags[0]
tag_url = base_url + urls[tag]
attr_url = f"{tag_url}#{attr}"
attr_ref = ref(attr, attr_url)
tag_refs = ", ".join([ref(f"`{tag}`", base_url + urls[tag]) for tag in tags])
print(f"|{attr_ref}|{tag_refs}|")