Python←Pythonでスクレイピング(メモ7:色々なソースに対応する)→Pythonでスクレイピング(メモ9:文字列の置換とリスト作成)こんばんは。Pythonでスクレイピング奮闘メモです。今回は、ソースのタグが同一でそこからの絞り切りが出来ない事案に対してどう対応したかをまとめました。各要素が循環している場合のみの対処法になります。ファーストブック」(142ページ以降中心)以下試行錯誤メモ。class=”gray12“>のみスクレイプしたい。'13'(欲しい情報)]直接指定する方法も調べて試したが解決には至らず、というよりよく分からず。別の方法で解決の道へ進むことに。自分は「同じことの繰り返し(循環)」になっている点に着目しました。for文を使えば欲しい情報のみ得られるのではないか、と。同じことが繰り返されているので、始めを0番目としてほしい方法は8→17→26→・・・番目にあるので、for文を用いて以下のコードでやってみました。range途中までは良かったみたいですが、デバッグしてるページは出馬数が13頭で、その先が無いためにErrorをはじいたみたいです。rangeと思いましたが、Error詳細をよく見るとkeiba[b]の時点でb番目が無いなら駄目みたいです。len()でリストの長さを取得そこでいつものGoogle検索。range」とそのまま検索したら一番上に出てきたページ(http://blog.setunai.net/20120807/indexerror-list-index-out-of-range/)で速攻解決。配列の長さを「len()」で取得すれば良いとのこと。いうことで早速使ってみる。integer新たなErrorが出現。確か’float’っていうのは小数のことだったはず。range()で使うには’c’の値を’integer’つまり整数値に直さなければならない。integer」とそのまま検索。トップで出てきたページ(https://ameblo.jp/taktak0/entry-12296943771.html)でこれまた解決。「int()」を使いなさい、と。←欲しい情報を'ninki'列へところが実行してみると、Errorは出ずとも最後の項しか出力されない!恐らくは上のような記述だとforによる繰り返しの中で絶えず上書きされているのだろう。上書きされずに、またリストとして出力したいので、リストに繰り返し追加していけば良いはず。今までのもそうですが、参考文献に載ってた記憶があったので調べました。[])を用意して、n.append()でOK。nこれで見事成功しました!!ようやく「単勝人気」の情報を手に入れる事ができました。同じようにして「オッズ」の情報も手に入れられるはず。ところがそこで新たに問題が発生するのでした・・・それは次回のメモに回します。