t_wの輪郭

あれPuppeteerのようなブラウザ自動操作ツールをサーバ上で動かせばScrapboxへの書き込みを自動化できる。ただし、自分だけが使えるサービスになる。一旦はそれでいいかな。 公開されたサービスにして、広く利用してもらいたい気持ちがある。あれoctpepper『ヘッドレスブラウザ+Puppeteerが使える「Cloudflare Workers Browser Rendering API」がオープンベータに』dockerだとpuppeteerがいい感じに動いているWindows停止するあれconvert-svg-to-pngデライトでクローラーを回すpuppeteerでクロールする様子デライト外部検索通類をデプロイしたクロールを途中から再開できるようにしたあれ手書きデータの画像化デライト外部検索通類デライト外部検索通類 構成概要図

デライト外部検索通類AWSデプロイした。↓のリンクから利用できる
http://ec2-52-193-108-6.ap-northeast-1.compute.amazonaws.com:8080/
 
デライトクローラが取得した1万9千の輪郭から検索できる

  • 1秒未満で検索が完了する
  • 10個までしか検索結果が表示されない
    • ページャー未実装
  • 検索結果に重複がある
    • 重複を削除する処理が未実装
  • 見た目が悪い
    • CSS未実装
      • node.jsで直接HTMLを吐き出しているため、複雑なフロントエンドを作るのは手間がかかる
        • テンプレートエンジンなどに乗り換えたい
  • 検索結果の並びがクロールされた順番になっている
    • ページランクで並び変える機能が未実装
検索エンジンをブラウザエクステンションで実装するアイデア全輪郭の表題推定容量puppeteer途中で止まるpuppeteerWSL2WSL2のalpine上でpuppeteerが動かないdockerだとpuppeteerがいい感じに動いているあれWindows停止する実現性検証メタ情報ページのメタ情報だけを保存JSON.stringifyに大きいオブジェクトを渡すと、JSONに変換してくれないクローラで得られるページ数桁数を一個減らしたい入門自作検索エンジン一部機能をNode.jsからD言語に移行する『大規模なデータをJSON.stringifyとBlobを使って保存しようとしたら,ブラウザがエラーを出すときの対処法』野良クローラの推定容量デライトクローラpuppeteerでクロールする様子デライトの生HTMLファイル容量ページメタ情報の容量クロールを途中から再開できるようにしたあれデライト外部検索通類をデプロイしたデライト外部検索通類デライト外部検索通類 構成概要図

デライトクローラの再開時に、ファイルに保存したメタデータを読み込むようにした
これでクロールを途中から再開できる
現時点では全メタデータを読み込む
メタデータの増加に合わせて、処理時間と消費メモリーが線形に増加する想定だ
こいつが膨大なデータを集めるまえに、よりかしこい処理方式を実装しなければならない

OGPを通して画像を要求された際に、
■ 手書きデータ→SVG→ブラウザのCanvasに描画→スクショ→PNGとして返す
っていう処理になってたのを、
■ 手書きデータ→ブラウザのCanvasに描画→スクショ→PNGとして返す
っていう処理に書き換えた


そもそもなんでブラウザやねんとなっており、
■ 手書きデータ→PNG
にしたい


現状だとサーバーでChromiumを起動するpuppeteerが走っており、これが大変遅い。起動やらなんやらするだけで1秒かかる。画面遷移に時間がかかってる説があるのでその辺の高速化がいりそう。

あれ

2020/9/24 23:41:00

コマンドラインからデライトを検索できるところまでは来た
検索が一瞬で終わる
連想配列から単語をキーとしてURLを取ってくるだけなので早い
ただ、検索結果にURLしか表示されない
デライトクローラをメタデータだけでなくページ内の内容も保存するように改変する

<div style="width:100%;height:0px;position:relative;padding-bottom:108.898%;"><iframe src="https://streamable.com/e/ocvssv" frameborder="0" width="100%" height="100%" allowfullscreen style="width:50%;height:50%;position:absolute;left:0px;top:0px;overflow:hidden;"></iframe></div>