このように属性名の大文字・小文字は区別されません。属性値が文字列の場合、ソース上での表記に関係なく「”」は無くても良いまずは「td[align=“RIGHT”]」(ソースでは表記のない「”」を追加)で指定。次に、ソースでは「id=“W01D_D2”」と「”」付きで表記されている場合で、「table[id=W01D_D2]」のように「”」を取って指定。このように、属性値が文字列の場合は「”」は有っても無くても問題ありません。属性値が数字のみの場合、ソース上での表記に関係なく「”」で必ず囲うまずは属性値が数字のみで、ソースでの表記では「”」が有る(「cellspacing=“0“」の)場合で、「table[cellspacing=0]」のように「”」を取って指定。18>文法Errorになります。「”」を付けて指定すれば問題ありません。']次にソースでの表記では「”」が無い(「cellspacing=0」の)場合で、「table[cellspacing=0]」のように「”」を取って指定。※2004年1月5日開催の京都金杯の結果ページでデバッグ。18>やはり文法Errorになります。こちらも「”」を付けて指定すれば問題ありません。'65番人気']このように、属性値が数字のみの場合はソース上での表記に関係なく「”」が必要です。これまでの復習だった先節で分かったのは、2005年と2006年の結果ページから「単勝人気」をスクレイピングしたいなら、<td>タグの属性値が大文字or小文字or<td>タグ直下の<font>タグの3パターンを別々で対処すれば良いということ。※2004年以前は<font>タグが無いので2パターン。属性値さえ正しく指定すれば、単勝人気は取得したリストの5の倍数番目にある(先節の結果から分かる)ので、「メモ8:for文を使う」と同じように対応。次節でもう少しスマートに対処しています。続いて「オッズ」は4パターンありました。※2004年以前は少し改良して2パターン。こちらも属性値さえ正しく指定すれば、「メモ9:文字列の置換とリスト作成」と同じように対応可能。s」で絞り込んでいるので大丈夫だと思います。その辺は次節でほんの少し改良しています。今まで苦労してきたことを活かせたことは大きいです。n番目指定とfor文でよりスマートに2004年以前の結果ページも基本は同じだったんですが、微妙に<td>タグの属性値が違いました。それも大文字・小文字レベルではありませんでした。そこで先節のコードをよりスマートにすることも目的に、少し改良を試みました。id=”W01D_D2′′>タグ内にある<tr>タグ内ごとの、15番目の<td>タグにあるので、「メモ10:n番目指定・思わぬ落とし穴」と同じように対処してみました。‘replace’」となるのを防いでいます(詳しくは「メモ10:n番目指定・思わぬ落とし穴」)。これは明らかに改良と言って良いでしょう。2004年1月5日開催の京都金杯の結果ページでデバッグするとこんな感じ。”)」は必要ではないですが、他のページでは必要なので。同じように「オッズ」も<table>タグまで指定してあとはfor文で対処してみました。m]よくよく見るとあまり改良にはなっていない気がします。<table>タグの属性値パターンが減っただけかもしれません笑2004年1月5日開催の京都金杯の結果ページでデバッグするとこんな感じ。20000']ちなみに先節と同じようなコードだとこんな感じ。20000']こっちの方がコード量は少ないです。「単勝人気」の方は明らかに改良だと思いますが、こちらはどうでしょうか。残念ながらn番目指定で統一出来ないのが痛いです。プログラミングに正解は無いと思っているので、どちらが良いかは人それぞれ、ということにします。前回に引き続きPythonでスクレイピング挑戦時のメモ。Pythonでスクレイピング奮闘メモです。最近続けているPythonシリーズ(ただのメモ)です。...記事を読むPythonでスクレイピング(メモ1:環境構築)こんばんは。コメントをキャンセルメールアドレスが公開されることはありません。