2024-01-26 (Fri)

沖縄市というものが存在することを知らなかった地理によわいとりさん。県庁所在地が那覇市だから、沖縄市なんてないと思っていた。そう思って調べたら、県庁所在地の宇都宮市があるのに栃木市もあるということを知った。

アメリカ合衆国の大統領予備選挙でトランプ氏のライバルが次々と step down しているという報道があるが、"step down" という概念、すごく好きである。とりは、繁殖競争にも tenure 競争にも PI になる競争にも乗らないから精神が平穏である。

はてなブログの記事を Markdown のままバックアップする

このブログの記事を Markdown のままダウンロードしようとした。 AtomPub API が提供されているので、それを使えばよいのだが、厄介なことに最新の記事から 7 件ずつしか取得できず、しかも link タグを辿って単方向リストとしてしかアクセスできない。

とりあえず下のコードですべてバックアップしておいたが、次回、追加・更新した記事だけ取得するといった操作が面倒である。

import requests
import time
import xml.etree.ElementTree as ET

apiurl = "https://blog.hatena.ne.jp/biochem_fan/biochem-fan.hatenablog.com/atom/entry"
api_id = "biochem_fan"
password = open("API_KEY").read().rstrip()

i = 0
while True:
    r = requests.get(apiurl, auth=requests.auth.HTTPBasicAuth(api_id, password))
    with open("%04d.xml" % i, "wb") as f:
        f.write(r.content)
    i += 1
    root = ET.fromstring(r.content)

    next_url = [x.attrib['href'] for x in root.findall("./{http://www.w3.org/2005/Atom}link[@rel]") if x.attrib['rel'] == 'next']
    if len(next_url) != 1: break

    apiurl = next_url[0]
    print(i, apiurl)
    time.sleep(1)

読んだ