前提・実現したいこと
あるwebサイト(Garoon)のテキスト情報をseleniumで取得したいのですが、空文字で返ってきます。
エラーなどは特に出ていません。
###サイトのHTML構造(上層は省略)
<table> <tbody> <tr> <td class="A" style="width:60%;"> " 2962 :" == $0 <span class="C"> <a href="D">...</a> </span> "2021年04月02日(金) 16:11 " == $0 </td> <td>...</td> </tr> </tbody> </table>
該当のソースコード
python
1from selenium import webdriver 2from time import sleep 3from getpass import getpass 4import csv 5import datetime 6 7 8def garoon_comment_number(): 9 10 #user情報の入力 11 username = input("your loginname:") 12 password = getpass('your password: ') 13 14 driver = webdriver.Chrome("C:/dev/tools/chromedriver_win32/chromedriver.exe") 15 driver.get("URL") 16 17 #ログイン名をログイン画面へ入力する 18 usernamebar = driver.find_element_by_name("_account") 19 usernamebar.send_keys(username) 20 #ログインパスワードをログイン画面へ入力する 21 passwbar = driver.find_element_by_name("_password") 22 passwbar.send_keys(password) 23 24 driver.find_element_by_name("login-submit").click() 25 26 sleep(5) 27 28 #番号を取得 29 max_num_comment = driver.find_element_by_xpath("//tbody/tr/td") 30 max_num = max_num_comment.text 31 max_num = max_num.replace(" ", "") 32 print("----------------------") 33 print(max_num_comment)#text 34 print("----------------------") 35 #print(max_num_comment) 36 37 input() 38 39def main(): 40 garoon_comment_number() 41 42main() 43
###上記コードの出力結果
your loginname:USER名 your password: DevTools listening on ws://127.0.0.1:49958/devtools/browser/6ccde4d6-7462-443e-a773-74664fc7c629 [15000:6904:0407/193212.722:ERROR:device_event_log_impl.cc(214)] [19:32:12.722] USB: usb_device_handle_win.cc:1056 Failed to read descriptor from node connection: システムに接続されたデバイスが機能していません。 (0x1F) ---------------------- ----------------------
試したこと
・空白が多いからこのようになっているのだと仮定し、.replace()で空白の置き換えを試みた。
・同様の事象らしきものが確認された記事を参考に以下のような、.textの取得の仕方を変えてみた。しかし、空文字で返ってきた。
python
1変更前 2#番号を取得 3max_num_comment = driver.find_element_by_xpath("//tbody/tr/td") 4max_num = max_num_comment.text 5max_num = max_num.replace(" ", "") 6print("----------------------") 7print(max_num_comment)#text 8print("----------------------") 9#print(max_num_comment) 10 11変更後 12#番号を取得 13max_num_comment = driver.find_element_by_xpath("//tbody/tr/td").get_attribute("textContent") 14print("----------------------") 15print(max_num_comment)#text 16print("----------------------") 17#print(max_num_comment)
補足情報(FW/ツールのバージョンなど)
pythonのバージョン:3.8.7
PCのOS:Windows10
以上です。
ご指導のほどよろしくお願いいたします。