みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

AJAXを使用したサイトに対するgetelementsbytagname("td")について

プログラミング初心者です。
fifiaのランキングのページ(http://www.fifa.com/worldfootball/ranking/lastranking/gender=m/fullranking.html)を対象にして、スクレイピングを行おうとし、
require("win32ole")
ie =WIN32OLE.new("InternetExplorer.Application")
でIEオブジェクトを取得し、
ie.visible =true
ie.Navigate("http://www.fifa.com/worldfootball/ranking/lastranking/gender=m/fullranking.html")
while ie.busy == true
sleep 0.1
end
ここまではいいのですが、表の中の値を取得しようと
ie.document.getelementsbytagneme("td")
を実行してみてもnilが帰ってきてしまいます。
HTMLのソースを表示してみても<td>タグは含まれているはずなのですが、試しにie.document.getelementsbytagname("td").lengthを実行してみると0が返ってきてしまい、どうしたらいいのかさっぱりわからない状態です。
ie.document.getelementsbytagname("div")などはちゃんと機能するので、おそらく問題の原因は<td>タグがAJAX.updaterメソッドを使ったページの内容更新の対象となっていることだと思うのですが、いかんせん不勉強で解決方法がわかりません。
どなたか詳しい方、ご教授していただけないでしょうか。

投稿日時 - 2009-04-09 11:02:24

QNo.4865066

すぐに回答ほしいです

質問者が選んだベストアンサー

何度かやってみましたが、
p ie.document.getelementsbytagname("td").length
で、305が表示されますね。

WinXP ProSP3+IE7です。

あと、スクレイピングであれば、rubygemsのmechanizeを使ってみてはどうでしょう?

投稿日時 - 2009-04-09 22:05:39

補足

>何度かやってみましたが、
>p ie.document.getelementsbytagname("td").length
>で、305が表示されますね。

そうですか…。自分はVista+IE7なのですが、ますます原因が分からなくなってしまいましたね…。
色々さらに調べてみることにします。

投稿日時 - 2009-04-10 07:57:26

お礼

今日改めて挑戦したら、なぜだか成功しました。
未だに昨日失敗した原因は分かりませんが、、、
rubygemsも活用していけるようにしていきたいです。

投稿日時 - 2009-04-10 11:41:50

ANo.2

このQ&Aは役に立ちましたか?

3人が「このQ&Aが役に立った」と投票しています

回答(2)

外しているかも知れませんが、getelementsbytagneme ではなくて getelementsbytagname では? (neme → name)

投稿日時 - 2009-04-09 11:59:26

補足

すいません、ただの転記ミスです。
誤解を招いてしまってすいません。

投稿日時 - 2009-04-09 20:02:38

あなたにオススメの質問