「LocalCrawler」に関する日記

LocalCrawlerとドラゴンクエスト10

LocalCrawler(非公開ツール)

アンパンマンDBが開発環境で激重な関係で、LocalCrawlerがタイムアウトで落ちがちだったので、タイムアウト設定作りました。
重いの自体は一応正常なので、タイムアウトを伸ばしてエラーを防ぐということです。
あと、GETパラメータで無限にURL作れるようなページを意味もなく深掘りし続けるのを避けるために、探索の深さの制限も付けました。

それから、LocalCrawlerは非公開の個人的なツールなんで、今後「非公開ツール」のタグも付けようかと。

ドラゴンクエスト10(ミフミン)

おそなえ
知らん間に名声レベルが最大の120になっていました。
このあたり詳細覚えてなくて、300ぐらいまであるもんだと勝手に思ってたから最後はあっけなくてびっくり。

画像は特に関係のないお団子を濡らすミフミンです。

ドラゴンクエスト10(ァォィョッュ)

  • バトルの申し子の称号を得た!

バトルあんまりやってないァォィョッュもバトル関連の称号集まってきました。

日記とLocalCrawler

日記

日記の各記事に固定リンクを追加
昨日言っていたハッシュタグ風のカテゴリ表記、固定リンクとの差別化だったのでした。
固定リンク機能は正直管理人の私以外には大して意味がないような気がしますが、日記で時々やっている過去の日記への言及がこれでやりやすくなったのです。

LocalCrawler

自動でHTMLをバリデートするジョブを作りました。
Nu Html Checkerのコマンドラインツールを使っています。
これまでPHPはPHPUnitを導入するなどして間違いのないプログラムを作るよう心掛けてきましたが、そうやって出力されるHTMLは目視でしか確認してきませんでした。
そうすると、ブラウザが何とかリカバリーしてくれるエラーはすべて見過ごすことになってしまいます。
ということで作ったのですが、さっそく非推奨のimgタグのalign属性が無数に出てきました。
最近は使わなくなったのですが、昔作ったページを形だけHTML5に変換したときに発生したようですね。

LocalCrawler

暗号化なしのHTTP接続を探すジョブを作ってみました。
実際には正規表現で検索するジョブですが、これにURLのパターンを入れれば簡単に見つけ出すことができるのです。
なるべくセキュアなところにリンクしたいのです。

アンパンマン質問箱とLocalCrawler

アンパンマン質問箱

古いURL(質問箱跡地)にはもうほぼアクセスが無くなったので、更地にしました。
一応、わずかにアクセスのあったページには、新質問箱へのリダイレクトを付けています。
だからと言って新質問箱を再稼働するつもりは今のところないですが。

LocalCrawler

読み込めないページのリンク元を特定できるようになりました。
これでサイト内のリンク切れとかを見つけ出せます。

LocalCrawlerとTwitter APIとドラゴンクエスト10

LocalCrawler

先日から言っていた自分のサイトのテスト環境を全ページ走査する自分用ツール、一応LocalCrawlerって名前があるのでカテゴリを作っておきました。
全ページ保存しようとすると時間的にも容量的にも大変な気がしたので、全ページを通ってエラーのみ記録するようにしてみました。
そして、ページを保存するなどの機能は、コマンドラインオプションで指定できるようにしようかと画策中。

Twitter API

新しく進化したTwitter APIの登場
Twitter APIのバージョン2です。
このバージョンだと、以前は使えなかったアンケート機能も非公式アプリで使えるようです。
これまた自分用ツールのmifumitterあたりで使えそうです。

ドラゴンクエスト10

ハロウィンイベントのクリア後のやつ頑張ってみたけど、500個集めたあたりでだるくなってやめました。
これ、個数以外の条件があるのか、それとも要求数が馬鹿みたいに多いのか?
流石に人が多くて重い場所でひたすらいいね連打は疲れます。

HTML5

そうだ、うちのサイトはブラウザ判定やSPAなんてこじゃれたことはしてないんだから、単にページのソースが欲しいだけならcurl系統の、HTTPリクエストを送るだけの機能を使えばいいんだ。
実に単純なことであった。

Selenium

HTML5のページだけバリデーションかけたいんなら<!DOCTYPE html>で判別すればいいじゃないかと思ったら!
DOCTYPE宣言はPageSourceから省かれている!!!

DOCTYPEに頼らずHTML5を判別する方法はないものか。
DOCTYPE宣言だけHTML5で、中身がHTML4.01なのは問題だから、それはエラーとして検出したい。
つまり、タグを見てHTML4.01じゃないからHTML5っていう判定はできない。

それはそうとして、「--blink-settings=imagesEnabled=false」のオプションを付けたら速くなった。
見たいのはHTMLだけなので、画像を読み込む必要はない。

W3C Markup Validator

ローカル環境で無作為にクロールしてバリデーションかけたら大変なことに!
古いHTML4.01やShift_JISのコンテンツは軒並みアウト!
古いCMS(主にPukiWiki)使ってる場所もすごい勢いでエラー!
これはさすがに直し切れるものではない!

HTML4.01自体は正当なHTMLなので、HTML5のバリデータにとってはそもそも対象外。
CMSはこちらで手出ししにくい部分なのと、そもそも古くて直す価値も低いことから、放置…というか、古かったらやっぱりHTML4.01なので、やはり対象外。
HTML5で書いたページに絞って仕切り直しかな。

LocalCrawler

自分のサイトのテスト環境の全ページに全力でアクセスしまくるプログラムによって外部アクセスが起きないように、サイト側で、テスト環境なら外部リソースを読み込まないようにしました。
そんでもって、似たようなページに連続アクセスしないように、レーベンシュタイン距離の離れたURLを選ぶようにしてみました。

LocalCrawler

自分のサイトのテスト環境の全ページに全力でアクセスしまくるプログラム作成。
しかし、本来は自分のサイトの外に出ないはずが、スクリプトや画像の埋め込みとして外へのリクエストが発生していたのでした。
アンパンマンDBとかは自動生成されるページも多いので時間がかかり、その対策も必要そうです。