ふくだ学習録とは?
ふくだが学習したことの備忘録。
目に見える形で残すことによってやる気を出す個人的な作戦です。
他人に見せるように書いているわけではないので、すごく読みにくいです。
読了した本
データベースエンジニア養成読本 [DBを自由自在に活用するための知識とノウハウ満載!]
ゼロから作るDeepLearning
PHPフレームワーク CakePHP 3入門
SQLアンチパターン
Docker入門
今読んでいる本
なし
アプリ制作
iframeに対してのスクレイピング
昨日の段階では、欲しい情報がスクレイピングで取得できない理由は、
動的に生成され、かつクラス名(ID名)も動的に生成される(毎回変わる)要素に関しては取得がうまくいかない。
といった形で、要素が動的に生成されているからだと思っていたが、よくよく調べてみると取得したい情報がiframe内にあるのが原因であると分かった。
iframe内は別ページ(というか別ブラウザって表現のがいいかな?)扱いになるので、iframeのソースページにアクセスしないといけない。iframeのsrcを取得してそこからアクセスしてもいいが、seleniumがそれ用の関数用意してくれていたので、そちらを利用する。
実際に作った関数がこちら。
def into_iframe(query):
iframe = driver.find_element_by_css_selector(query) # どのiframeかCSSセレクタベースで指定する
driver.switch_to_frame(iframe) # iframeにアクセスする
(switch_to_frame
にiframeの情報渡せば中に入れる。selenium様様やわ。)
UAの変更
ブラウザを変更したり、表示画面サイズを変更したりしたかったが、都度別ブラウザを作成したりするのは大変なので、UAを変更することで対応する。
options.add_argumentで指定したいUAを渡せばOK。
options.add_argument('--user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3864.0 Safari/537.36')
driver = webdriver.Chrome(options=options)
今日の一言
実際のアプリ制作になったらアプトプットすることがほぼほぼない笑
うっすい内容のQiita量産しまくっちゃってる。反省なう。