naopoyo.com
  • Docs
  • Tags
  • Bookmarks
  • Tools
  • About
  • Docs
  • Tags
  • Bookmarks
  • Tools
  • About

目次

© naopoyo

🛼

開発日記-2024-07-21 / Rubyのスクレイピング関連の調査

公開日
約1年前
2024-07-21
更新履歴
GitHubで見る
  • 開発日記
  • Ruby
  • tocbot

RubyのURI must be ascii only

URI.parse では URI must be ascii only エラーが出てしまう。なので、Addressable::URI.parse を使う。

Ruby 2.1 と 2.2 における、URI#parseの挙動の違い - Qiita
症状 Ruby 2.1では、URIに使用できない文字(アンダースコア、アンダーバー)を含んだ文字列( http://abc_def.com/foobar/ ※1)をURI#parseに与えた際にURI::InvalidURIErrorの例外が発生する。 2015/08/1...
qiita.com favicon
qiita.com
Ruby 2.1 と 2.2 における、URI#parseの挙動の違い - Qiita

mechanize

mechanizeで "\xE3" from ASCII-8BIT to UTF-8 のような文字コード関連のエラーが起きた場合。

agent.page.body.encode(Encoding::Windows_31J, Encoding::UTF_8, undef: :replace)
mechanizeでgetしたhtmlが化けているっぽいんです - なんでや。。
引き続きkoboをクローリングする文脈で、です。 irb(main):001:0> require 'mechanize' => true irb(main):002:0> agent = Mechanize.new => #<Mechanize:0x410eda0 @agent=#<Mechanize::HTTP::Agent:0x410ed88 @allowed_error_codes=[], @conditional_requests=true, @context=#<Mechanize:0x410
fwl.hateblo.jp favicon
fwl.hateblo.jp
mechanizeでgetしたhtmlが化けているっぽいんです - なんでや。。
GitHub - sparklemotion/mechanize: Mechanize is a ruby library that makes automated web interaction easy.
Mechanize is a ruby library that makes automated web interaction easy. - sparklemotion/mechanize
github.com favicon
github.com
GitHub - sparklemotion/mechanize: Mechanize is a ruby library that makes automated web interaction easy.

devcontainerのzshを簡単にカスタマイズする方法を調べている

ローカル環境をpreztoでカスタマイズしているので、devcontainerのzshも同じようにカスタマイズするためにスクリプトを作って使い回しているのだが、もっとスマートな方法はないのか調べている。

VSCode devcontainer with zsh, oh-my-zsh and agnoster theme
I’m a fan of Visual Studio Code devcontainers and recently I’ve worked on getting them setup just how I like them with
medium.com favicon
medium.com
VSCode devcontainer with zsh, oh-my-zsh and agnoster theme
Connect-goとVSCode Dev Containerを用いた快適なgRPC開発環境構築
こんにちは!モンスターラボで Backend チームに所属している植田です。 最近関わったプロジェクトで、gRPC を使おうという話があがったため、サクッと快適な開発環境を立ち上げる方法について、あれこれ試行錯誤をしました。 本記事ではその方法についてご紹介します。 コードは Connect-go のチュートリアルをベースとして使用しました。Dev Container でコンテナ開発環境を構築し、
monstar-lab.com favicon
monstar-lab.com
Connect-goとVSCode Dev Containerを用いた快適なgRPC開発環境構築

NextUIのScroll Shadowとtocbotのバグ

NextUIのScroll Shadowとtocbotを合わせて使っているのだが、目次の項目が長くなると最下部までスクロールしても下部のScroll Shadowの影が消えない。

  • 目次部分の高さを半分くらいにすると正常に消えるようになる
  • ブラウザの開発者ツールで目次にDOMを追加・削除すると正常に消えるようになる
  • tocbotを使わずに同じような高さの要素を静的に出力させてみると正常に消えるようになる

結局解決策はわからないので進捗だけメモしておくことにした。

tocbotの使い方を間違っていた

tocbotの親のdivに overflow-y: scroll; をつけていると、コンテンツ側のスクロールにtocbot側が追従しなかった。

下記のように修正することで、コンテンツ側のスクロールに合わせて目次側もスクロールするようになった。

<div class="tocbot-container">
  <div class="tocbot"></div>
</div>
.tocbot-container {
  overflow-y: scroll; 
}
.tocbot {
  overflow-y: scroll; 
}

shikiのdiffの書き方は言語のコメントアウトの違いによって変わる

CSSの場合
.tocbot-container {
  overflow-y: scroll; /* [!code --] */
}
.tocbot {
  overflow-y: scroll; /* [!code ++] */
}
TypeScriptの場合
const hello = 'world'; // [!code --]
const hello = 'new world'; // [!code ++]

すごい。

目次

最近更新された記事

🌑
Railsを7から8にアップグレードする
1日前 - 2025年10月19日
  • Ruby
  • Rails
🚆
VS Codeでよく使うショートカット
4日前 - 2025年10月17日
  • VS Code
📈
Next.jsでBundle Analyzerを使う
4日前 - 2025年10月16日
  • Next.js