Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
1
Help us understand the problem. What are the problem?

posted at

updated at

Organization

HTMLから要素を削除する方法

javascriptのremoveメソッドを使えばHTMLから特定の要素を削除できます。

使用例: 例えばTwitterのように…

例えばTwitterのように無限にスクロールできるサイトをスクレイピングするとします。
Seleniumを使用すればスクロールによるデータ取得も簡単に実装できます。
しかし無限にスクロールした後に得られるのは巨大な一枚岩のHTMLです。
巨大なHTMLによる弊害は以下の通りです。

  • Selenium実行時にメモリの限界が来て異常終了する
  • HTMLパース時にメモリの限界が来て異常終了する
  • いい感じの大きさで分割保存されていないとエラー検証などの取り回しがしづらい

要素を消すことのメリット

要素を消しながらクロールしていけば上記の問題点は解決します。

  1. スクロールする
  2. 新規ツイートが含まれたHTMLを保存する
  3. HTMLからツイート要素を全て削除する
  4. スクロールする(以下繰り返し)

この手順を繰り返していけば常にフレッシュなツイートだけがselenium上に残り、メモリの心配がいらないのです。

seleniumでの実装方法

pythonでの記述ですが、どの言語でも同様に実装できると思います。

script = """
    elements = document.getElementsByClassName("foo bar baz")
    elements = Array.from( elements )
    elements.forEach(element => element.remove())
"""
driver.execute_script(script)

以上

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
1
Help us understand the problem. What are the problem?