エンジニア採用担当がプログラミング頑張る話【11日目/2ヶ月間】
こんにちは、@hiroki_maekawaです。
昨日CSVファイルに書き出すコードは書けたのですが、1行しか反映されていなかったので、ループ処理をして複数行の書き出しを試みるところから始めます。
今日の目標
・ループ処理でCSVファイルに複数行の書き出しをする
・CSVファイルをデータベースにインポートする
1. ループ処理でCSVファイルに複数行の書き出しをする
まずはドットインストール、また下記サイトでループ処理の基本を確認。
無限ループして、エラーが出たらbreakで良いのでは?と考え、下記コードを書いてみました。すると事件は起きました。
//ループ処理
for {
writer.Write(content)
if err != nil {
break
}
}
50GB超のCSVフィアルが出来上がってしまい、ファイルを開こうとしたところPCが落ちてしまいました。。
条件式を書いていないことが分かり、こちらのサイトでまた基礎を確認しました。
その後、下記で実行すると、、
//ループ処理
for i := 0; i < 30; i++ {
writer.Write(content)
if err != nil {
break
}
}
同じ記事のタイトル名とURLが反映されちゃってます、、
この後、for eachを実現するためにrange関数を使えば良いのではと思い、使ってみたのですが、Write関数に入れる引数の型が制限されていてうまく実現することができず、、
煮詰まったので、一度ループ処理でいく方法から離れ、CSVファイルに書き込むコードと配列をEach関数の中に入れて実装してみました。
すると。。!
ようやく「複数の要素をスクレイピングする→取ってきたデータをCSVファイルに書き込む」ことが実現できました。ここまで長かった。。
今日できるようになったこと
・スクレイピングしたデータ全てをCSVファイルへ書き出し
さいごに
今日は煮詰まっていた時間が長く、あっという間に1日が終わってしまいました。。途中、「質問して返ってきた回答の意味が分からないの連続。。」といったことが多かったので、これからひとつひとつ復習していきたいと思います。
それではまた!