Help us understand the problem. What is going on with this article?

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

ふくだ学習録とは?

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

読了した本

データベースエンジニア養成読本 [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量産しまくっちゃってる。反省なう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした