前回、
ページの変わっていく部分が20 ずつ増える、
という部分で固まってしまった。
そこを親切なNさんに教えてもらった。
for 変数 in range( )
は、よく、変数をカウンタ変数 i として、
for i in range(5)
と書き、
>> 0
1
2
3
4
1
2
3
4
を得る、
というふうに使う。
しかし、
range関数は、引数に
(始まりの値、終わりの値、増加する量)
を指定できるのだ。
(先ほどの5は、終わりの値だけを指定している。後の2つの引数は省略可能。)
それで、変数をurl_numとし、
for url_num in range(0, 22120, 20)
とすると、
>> 0, 20, 40, …, 22100
まで取ってこれた。
なのでそれを、
browser.get(url.format(url_num))
で回せば(for文に組み込めば)OK!
と思って実行したら、またもつまづいた(泣)。
for 文を回すと、どんどん繰り返されるので、
1回1回、取ってきた俳句をリストに追加していかないと、
最後の22,100ページの俳句だけが出力されるのだ。
(プログラミング超初心者にしか起こりえないミスで恐縮です。)
つまり、
きちんとチャートフローを書いて、プログラミングしよう
ということだ。
こういうことは、
実際にコードを書いてエラーを出さないと気づけない。
本に載ってるコードを無意識に写経しているだけではダメなのだ。
『改訂3版 これからはじめるプログラミング基礎の基礎』
を読み返して、再度、基本を再確認したい。
で、できたコードがこれ。
(url = が切れているが、数字が変わる部分を、entry= { } としている)
しかし、
これを回すと今度はこんなエラーが出て、
89ページ分(1,780句)しか取れなかった。
もう無理!
と肩を落とす前に、
今回は自分でその原因を考えてみたい。(つづく)