ablog

不器用で落着きのない技術者のメモ

はてなブログのタイトルとURLをスクレイピングする Python スクリプト

追記(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