お世話になっております。
スクレイピングをしており、基本的なことが分からずご教授ください。
<td id="TBL1_B_Col4_1" style="display: none;">使用中止</td> ・ ・ ・ <td id="TBL1_B_Col14_1"></td>
ある表は上記のようなtdタグで構成されていますが、上行のようにtdタグに「使用中止」というような文字列が入っているものは除外し、下行のような中身が空のものだけを抽出したいと思っています。どのように記載すればよいでしょうか?
<やったこと>
python
1td_elements = driver.find_elements(By.TAG_NAME, "td") #まずtdタグだけ抽出 2kara_td_elements=[] #空のものだけの要素用リスト作成 3for i in td_elements: 4 if len(i.text) ==0: #文字列で長さがゼロであれば 5 kara_td_elements.append(i) リストに追加
お書きのコードで駄目だったんでしょうか?
早急なご回答、ありがとうございました。ご教授頂いたやり方でやったらできました。
情報が足りなかったので申し訳なかったのですが補足しますと、スクレイピング対象の表は施設の利用予約の表でして、一時間単位で予約済か空きかがわかるような左右に長い表になっており、空きの時間を抽出したいと考えておりました。
ブラウザ表示上、例えば8時から10時まで「予約済」と表示されている状態(表の見え方は8時から10時までがエクセルでいう「結合」されたような状態)になっていたとしても、「検証ツール」で表示させると8時、9時、10時の3つ分のtdタグに「予約済」と表示がされていました。なので、私が記載のやり方で抽出したlen(i.text) ==0 の条件での抽出方法では、8時、9時、10時はtdタグは入ってこないだろうと思っていたのですが、そうはならず9時、10時も入ってきていました。
試しにi.text=="予約済"を条件に先ほど抽出してみたのですが、8時の分しか抽出されませんでしたので理解できていませんがつじつまの合う結果にはなっています。。
jsの知識が必要ってことがわかりました。もっと勉強します。
ありがとうございました。
回答1件
あなたの回答
tips
プレビュー