このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
Selenium WebDriver、HTTPレスポンスヘッダを取得するインターフェースが存在しないという事実を知り、白目になっている・・・
profileのintl.accept_languagesにちゃんと日本語(ja)を指定しないと、多言語化されてないページを表示したときにGoogle翻訳バーが表示されてヴァーとなる。( マストドンの個別ページは多言語化されているのでそうはならない)
結局こんな感じに落ち着いた。
Selenium WebDriver + Headless (Firefox|Chrome) でマストドンの個別ページのスクリーンショットを取るヤツ(要ImageMagick)
https://gist.github.com/aquarla/80a45feab28a365323f55a0905fdc4b5
ブラウザのviewport以外の大きさは、window.outerHeight - window.innerHeight で計算できるので、その分をdocument.body.scrollHeightに加算することでなんとか調整した
Selenium WebDriverの driver.manage.window.resize_to って、これブラウザの表示領域じゃなくてブラウザウィンドウ全体の大きさってことなのかな。微妙にスクリーンショットの下が切れるのは、ブラウザのアドレスバー部分なのかしら・・・
なお、Headless FirefoxでDOMのスクリーンショットを取る部分、DOMの座標を取得して全体スクリーンショットからImageMagickでcropする方式を採用した
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
このアカウントは、notestockで公開設定になっていません。
大規模鯖等、マストドンの投稿の大半は、自分の目には触れないまま通り過ぎていくことを考えると、マストドンの人口がどうこうとか考えてもしょうがないというのはそれはそうですね
@localadms もっと投稿数多いかな・・・と自分が勝手に想像していたものと比べているに過ぎないので、あまり深い意味はございません・・・
一時間で150〜160トゥートくらいすると、アクティブインスタンストップ10を狙えるような気がするけど、冷静に考えたら30秒に1回トゥートしても間に合わないし無理だコレ😅
数値リテラルにアンダースコアを含めることで視認性が増すケース…そりゃ増すかもしれんけど、そういう場合もっと他にやりようがあることが多そう
Headless Firefoxの全画面スクリーンショットだけど、試した結果以下でいけた
---
height = driver.find_element(:css => 'body').size.height
driver.manage.window.resize_to(1024, height)
driver.save_screenshot "./hoge.png"
なおHeadless Chromeの場合、一発で画面全体のスクリーンショットを取る方法がそもそも存在しない(と思われる)ので、選択肢から外れております・・・
画面全体が取れないなら、画面一部を取ってスクロールしながら画像結合すれば・・・とも考えたけど、アクセスするたびに内容が変わるんだから、複数回アクセスしてる時点で画像は結合できない・・・
アクセスする度に内容が変わるページを、Headless Firefoxでスクレイピング(具体的には部分&全体のスクリーンショットの取得)しようとしているのだが、
- 画面全体のスクリーンショットはコマンドラインからしか取れない(Selenium経由だとどうしても画面全体が取れない)
- DOMのスクリーンショットは(おそらく)Selenium経由でしか取れない
アクセスする度に内容が変わるページが対象なので、HTTPアクセス1回で全データを取る必要があるのに、画面全体&特定DOMのスクリーンショットを同時に取得する手法が存在しなくて、地味に詰んでいる感がある。PhantomJSから乗り換えられない・・・
Headless Firefoxで特定DOMのみのスクリーンショットを取得する方法を探してるんだが、なかなか見つからないのぉ