あるサイトのテキストフィールドの値をPythonでスクレイピングしようとしています。
下記のHTMLコードは、それぞれ英字、数字、記号のチェックボックスがあり、任意のものにチェックをつけた状態で[文字列を生成]ボタンを押すと、3つのテキストフィールドに(チェックボックスをつけた種類の中で)文字列が出力されるというものです。
HTML
1<form id="myform" onsubmit="send();return false"> 2 <div class="desc"> 3 <ul> 4 <li> 5 <label> 6 <input class="check" type="checkbox" name="pw_pattern[]" style="position: relative; top: 2px;" value="english_txt" checked=""> 7 <span class="label">英字</span> 8 <br> 9 <span class="example">abc...</span> 10 </label> 11 </li> 12 <li> 13 <label> 14 <input class="check" type="checkbox" name="pw_pattern[]" style="position: relative; top: 2px;" value="num_txt" checked=""> 15 <span class="label">数字</span> 16 <br> 17 <span class="example">123...</span> 18 </label> 19 </li> 20 <li> 21 <label> 22 <input class="check" type="checkbox" name="pw_pattern[]" style="position: relative; top: 2px;" value="mark_txt"> 23 <span class="label">記号</span> 24 <br> 25 <span class="example">/*-+.,!#$%&()~|_@</span> 26 </label> 27 </li> 28 </ul> 29 </div> 30 <br> 31 <span class="label">文字列を生成</span> 32 <br> 33 <div> 34 <input class="text" name="submit_str" type="submit" value="文字列を生成"><br> 35 </div> 36 37 <!-- テキストフィールド部分 --> 38 <div id="textfield" style="display: block;"> 39 <h3>テキストフィールド</h3> 40 <input id="txt1" type="text" name="hoge" onclick="this.focus();this.select()" value> 41 <input id="txt2" type="text" name="hoge" onclick="this.focus();this.select()" value> 42 <input id="txt3" type="text" name="hoge" onclick="this.focus();this.select()" value> 43 </div> 44</form>
このテキストフィールド部分の文字列をPythonにてスクレイピングをしたいと考えているのですが、見ての通り、値がコード上にないため、どのように取得すれば良いのかがわかりません。
テキストフィールドにonclick="this.focus();this.select()"とあるので、直接ここから取得ではなく、何か1つ処理を挟む必要があるということでしょうか?
Pythonで一応以下のようなコードは組んだのですが、HTMLの件が解決しないことには、先に進めないと感じ、中途半端な状態で止まっております。
Python
1import requests 2from bs4 import BeautifulSoup 3 4url = 'https://hoge.co.jp' # ダミーURL 5 6res = requests.get(url) 7res.raise_for_status() 8 9soup = BeautifulSoup(res.text, 'html.parser') 10 11elems = soup.select('#textfield') 12print(elems)
Pythonにおいて、上記HTMLの問題を解決するためには、どのような処理の追加が必要なのかをご教示いただきたいです。
何卒よろしくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。