変数の`links`と`html`は直前の処理の影響を受けているものなので`async.waterfall`でいいかもと思いました。
前もっての変数宣言も２つとも必要なくなるので。

具体的には以下のイメージです。
・17行目、19行目の変数削除。
・21行目を`async.waterfall`にする。
・49行目の`callback(null)`を`callback(null, html, links)`にする。
・53行目（この行）を`function(html, links, callback)`にする。