追記(2020/1/6):
複数月一気に取得できるよう改良した。以下は2020年10月から3ヶ月分を取得する例。
$ python hatena_scraper.py 2020 10 3 > 2020Q4
はてなブログの記事一覧をスクリピングしてからタイトルと URL を TSV に出力する Python スクリプト。
- pyquery をインストール
$ pip install pyquery
import sys from pyquery import PyQuery as pq year = sys.argv[1] month = sys.argv[2] url = 'https://yohei-a.hatenablog.jp/archive/{0}/{1}'.format(year, month) doc = pq(url) for result in doc('.entry-title-link').items(): print(result.text() + "\t" + result.attr('href'))
- 実行結果
$ python hatena_scraper.py 2020 4 Amazon Redshift に対してタグでアクセス制御を行う https://yohei-a.hatenablog.jp/entry/20200426/1587894516 jq メモ https://yohei-a.hatenablog.jp/entry/20200426/1587875011 Redshift の接続ログを取得する Python スクリプト https://yohei-a.hatenablog.jp/entry/20200425/1587803654 Pythonメモ https://yohei-a.hatenablog.jp/entry/20200425/1587798893 iPad Air を Macbook Pro のセカンドディスプレイにしてみた https://yohei-a.hatenablog.jp/entry/20200424/1587685384 Amazon Redshift で監査ログを取得するクエリサンプル https://yohei-a.hatenablog.jp/entry/20200421/1587469639 APGアクティビティストリームの KMS カスタマー管理キーに対する Kinesis Firehose のアクセス権 https://yohei-a.hatenablog.jp/entry/20200421/1587466652 KMS で同一アカウント内からのアクセスを許可するキーポリシー https://yohei-a.hatenablog.jp/entry/20200421/1587457515 Amazon EC2 の EBS 帯域幅 https://yohei-a.hatenablog.jp/entry/20200408/1586326862 Python で関数の戻り値でハンドリングする https://yohei-a.hatenablog.jp/entry/20200408/1586296904 AttributeError: 'str' object has no attribute 'read' https://yohei-a.hatenablog.jp/entry/20200408/1586291597 Kinesis Firehose S3 に出力した JSON を Python でパースする https://yohei-a.hatenablog.jp/entry/20200408/1586289985 Linux や macOS で隠しファイルを含めて ZIP で圧縮する https://yohei-a.hatenablog.jp/entry/20200407/1586251116 Aurora PostgreSQL 互換のアクティビティストリームを Lambda でデコードする https://yohei-a.hatenablog.jp/entry/20200407/1586222003 AWS Lambda で Amazon Redshift から S3 に UNLOAD する https://yohei-a.hatenablog.jp/entry/20200405/1586053151 macOS で head コマンドを使う https://yohei-a.hatenablog.jp/entry/20200403/1585893162 Python から Redshift に接続してみる https://yohei-a.hatenablog.jp/entry/20200403/1585878053