1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【ふくだ学習録】アプリ制作part10【37日目】

Posted at

ふくだ学習録とは?

ふくだが学習したことの備忘録。
目に見える形で残すことによってやる気を出す個人的な作戦です。
他人に見せるように書いているわけではないので、すごく読みにくいです。

読了した本

データベースエンジニア養成読本 [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様様やわ。)

Seleniumでiframe内のDOMを操作する方法

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)

pythonでUA偽装してseleniumでブラウジング

今日の一言

実際のアプリ制作になったらアプトプットすることがほぼほぼない笑
うっすい内容のQiita量産しまくっちゃってる。反省なう。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?