質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

pythonでのスクレイピングでcheckboxを選択できない。

yusuke1818
yusuke1818

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0評価

0クリップ

77閲覧

投稿2020/11/15 05:54

編集2022/01/12 10:58

PDBというサイトからあるタンパク質を検索して一括ダウンロードをしたいのですが、
def btn_click():の中の
search_check = browser.find_element_by_name("entry PDB")
search_check.click()
の所でcheckboxをうまく押せません。教えてください。
下記サイトのデータファイル形式:のPDBというcheckboxを選択したいです。

https://www.rcsb.org/downloads?ids=3W8R,3ASY,3ASZ,3W34

#コード

import tkinter from selenium import webdriver from time import sleep import requests from bs4 import BeautifulSoup root=tkinter.Tk() root.title(u"タンパク質検索") root.geometry("500x500") Static1 = tkinter.Label(text=u'タンパク質') Static1.pack() EditBox = tkinter.Entry(width=50) EditBox.insert(tkinter.END,"") EditBox.place(x=170,y=100) EditBox.pack() def btn_click(): EditBox_value = EditBox.get() browser = webdriver.Chrome('chromedriver.exe') browser.get("https://www.rcsb.org/") search_id = browser.find_element_by_id("search-bar-input-text") search_id.send_keys(EditBox_value) sleep(1) #-------------------------------------------------- search_id1 = browser.find_element_by_id("menu1") search_id1.click() sleep(1) search1 =browser.find_element_by_xpath("/html/body/div[2]/div/div/div[3]/div[2]/div[2]/table/tr/td[2]/div/div[1]/div[2]/div[1]") search1.click() #--------------------------------------------------- sleep(2) search_check = browser.find_element_by_name("entry PDB") search_check.click() search_final = browser.find_element_by_xpath("/html/body/div[2]/div/div/div[2]/div/div[1]/form/div[3]/div[1]/button") search_final.click() search_final2 = browser.find_element_by_xpath("/html/body/div[2]/div/div/div[2]/div/div[2]/div/div/div[2]/table/tr[2]/td/div[1]/a/h4/font[1]/font") search_final2.click() browser.back() browser.close() btn = tkinter.Button(root, text='タンパク質を検索する', command=btn_click) btn.place(x=170, y=200) root.mainloop()

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

nto
nto

2020/11/15 09:08

entryへの入力値は何でしょうか。 何を入力するとチェックボックスが現れるのでしょうか?
nto
nto

2020/11/15 09:13

ちなみにクリックに関するコード部分には特には問題はない様で selenium上で[https://www.rcsb.org/downloads?ids=3W8R,3ASY,3ASZ,3W34]が開かれている状態ならば search_check = browser.find_element_by_name("entry PDB") search_check.click() 掲題のこちらのコードで正常にチェックボックスにチェックが入ります。 恐らくはその他の部分に問題があるのではないでしょうか。
yusuke1818
yusuke1818

2020/11/16 03:14

Entryへはタンパク質名を入力します。 search_check = browser.find_element_by_name("entry PDB") search_check.click() ここからうまくいかなくなるのでこの付近だとは思っています。 エラーメッセージを追加します。出来たらお願いします。
yusuke1818
yusuke1818

2020/11/16 03:17

entryには具体的には uridine kinase を入力します。
nto
nto

2020/11/16 03:40

そもそも[uridine kinase]を検索して出てきたページ上にはentry PDBはおろか、33行目以降のセレクタは存在していない様です。
yusuke1818
yusuke1818

2020/11/16 04:04

[uridine kinase]を検索し, search1 =browser.find_element_by_xpath("/html/body/div[2]/div/div/div[3]/div[2]/div[2]/table/tr/td[2]/div/div[1]/div[2]/div[1]") search1.click() を押した後にentry PDBは出てきています。
nto
nto

2020/11/16 04:35

>>> https://www.rcsb.org/downloads?ids=3W8R,3ASY,3ASZ,3W34 >>> 実際にこのページのデータファイル形式のPDBというcheckboxを押したいです。 そちらのページのチェックボックスを押下したいのはわかりますが、どうがんばっても現状のコードでentryに[uridine kinase]を入力してseleniumを発火させても上記URLのページには遷移される事はなくソースにも記載の要素は存在しておりません。 そちらのページのチェックボックスを押下したいのであれば、browser変数上でそのページが開かれている必要があります。(初めにもコメントした通り、チェックボックスの押下コード自体は間違っていない様子です)

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。