read_lines() の possibly() 版
引き続き、スクレイピング対象として渡された一連のURLを使います。アクセスできないURLを見つけるために、いくつかの方法を試します。なぜかというと、Webスクレイピングの最初のステップは、そのURLにアクセス可能かどうかを確認することだからです。いま書いているコードはこの判定に役立ちます。
前の演習では、read_lines() 関数を safely() でラップしました。この演習では possibly() 関数を使います。
Webの用語では、404はそのページが利用できないことを示します。この数値を otherwise 引数として使います。
また、read_lines() はWebページを読むと長さ n のベクトルを返すので、これらは paste() 関数を使って結合します。
urls ベクトルは用意されています。
この演習はコースの一部です
purrr で学ぶ中級関数型プログラミング
演習の手順
read_lines()関数をpossibly()でラップし、失敗した場合は 404 を返すようにしましょう。作成した関数をURLリストに対して map し、その結果をそのまま
set_names()にパイプで渡します。各要素を、
paste()関数でcollapse引数を" "に設定して結合し、長さ1の文字列にします。値が 404 と等しい要素だけを残します。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Create a possibly() version of read_lines()
possible_read <- ___(___, otherwise = ___)
# Map this function on urls, pipe it into set_names()
res <- map(urls, ___) %>% ___(urls)
# Paste each element of the list
res_pasted <- ___(res, ___, collapse = ___)
# Keep only the elements which are equal to 404
___(res_pasted, ___)