目次
1.きっかけ
2.検温チェックの環境
3.苦労したこと、つまずいたこと
4.最後に
1.きっかけ
あまり声を大にして言えない話なのは十分承知しています。このご時世検温でコロナが発覚することもあります。しかし朝は忙しく、電車に乗ってから検温チェックの存在に気づいたり、人に言われて適当な数字を打つくことが続きました。それで苦肉の策として今回自動で検温チェックをやってしまおうというのがこの記事の趣旨です。ここで気分を害された方はブラウザバックをお勧めします。
2.検温チェックの環境
私のところでは現在Microsoft社のTeamsというソフトを使い、連絡を取っており、そこにアサインメントという形でアンケート形式の検温チェックがくる形になっています。このTeamsというソフトはなかなかの曲者で、PCでは鬼のようにメモリを食らい、私のくそスぺなスマホでは、しばしば固まったりします。それもやるきがなくなってしまった要因の一つです。
3.苦労したこと、つまづいたこと
ここでは特に詳しくこ
こをどうしたということは書きません。初心者の私が普通に調べながらwebスクレイピングをやっていくうえでここでつまずいたというところを備忘録もかねて書いていければなと思っています。
一つ目に私が苦労したなと思うところはiframeの存在です。
いまだにどのような動きをしているのかはよくわからないのですが、別のウィンドウ判定になっている?らしく、find_elementなどで要素を見つけようとしてもiframeのタグで囲まれていると、そこの中の子要素を選択することができないというなんとも初見殺しなトラップです。
この対処法としては
iframe=driver.find_elements_by_class_name("classname")[0]
driver.switch_to.frame(iframe)
のようにしてwebdriverをそのiframe内に変更してあげることだそうです。
ちなみに元に戻したいときは
driver.switch_to.default_content()
のようにします。
二つ目はxpathの存在です。
一つのタグの中にclassもidもなくほかの属性で検索したいときに使えるxpathですが、そもそもこのxpathを理解するのに少し時間を使いました。
xpathはもともとルートを指定する使い方もあり、検索するとそっちばかりが目に移り、肝心な要素を探す使い方を探すのに苦労しました。またルートを省くとき、
driver.find_elements_by_xpath("//input[contains(@class ,'a')]")
のように//をつけなくてはならず、そこにも気づくのにたくさんのエラーとお付き合いしました。
4.最後に
初心者なりにつまづいた、時間を使ったと思うところをピックアップしてみました。これからwebスクレイピングやる日糸の少しでも力になれたら幸いです。