無いかを調べるWEBサービスを作ってみたのでこのブログで公開しました。クローラーを作るためにScrapyを覚える事にしましたが、どうせなら何かに使えそうな物を勉強がてら作ろうという事で混在コンテンツチェッカーを作りました。サイトをSSL化した後って混在コンテンツの確認が大変ですし、SSL化後もうっかり混在コンテンツを表示していたという事もあるかと思います。最大10,000ページまで無料でチェックできますので是非使ってみてください。上記のページにも書いてあるのですがここでは詳細に解説します。サイトを登録するサービスページの中ほどに登録フォームがあるので「URLとサイトマップURL」を入力し必要に応じてクローラーに使わせたいユーザーエージェントを指定します。利用できるユーザーエージェントはクローラー情報を確認してください。モバイルファーストの時代なのでデフォルトではスマートフォン用のユーザーエージェントを使いクローラーが巡回します。PC、スマートフォンでそれぞれ表示するコンテンツが違う場合は、ユーザーエージェントを切り替えてそれぞれチェックする事を推奨します。指定したユーザーエージェントはコンテンツページの取得時しか利用しません。XMLサイトマップ等のそれ以外の通信ではPC用のユーザーエージェントを固定で使いますのでご注意ください。Sitemapsのプラグインを使うのがおすすめです。全て入力が終わったら「登録」ボタンを押します。サイトを認証する登録に不備が無ければ認証用ファイル「sslchecker_verify.html」のダウンロードリンクが表示されます。アップロードして、「認証する」ボタンを押します。認証用ファイルが確認できたらクローラーのキューにサイトが自動登録されます。アップロードしても認証されない場合はHTMLタグ認証をお試しください。手順は下記に記載します。トップページの<body>~</body>内に上記のHTMLタグを埋め込み認証させるトップページの任意の場所に上記のHTMLタグを埋め込みます。認証はPC用のユーザーエージェントで行うのでPC、スマートフォンでトップページのHTMLが違う場合はご注意ください。WordPressの場合は「カスタムHTMLウィジェット」を使って、上記のHTMLタグを貼り付けると簡単です。この認証が終われば認証用ファイルは削除しても問題ありませんが、中に処理結果を確認するためのIDが記載されているので結果が出るまではメモしておいてください。巡回を待つ1のフォームに発行されたIDを入力して「処理状況を確認」ボタンを押すとクローラーの状態が確認できます。クローラーが待機していれば即時処理が実行され、他の処理をしていれば順番待ちになります。3秒が終了の目安です。IDがわかれば後からでも確認できるので、このページを閉じて暫く経ってから確認してみてください。Cookieで管理していないので、IDはメモを取るか認証用ファイルに同じものが記載されているので処理が終わるまでは保管しておいてください。結果を確認する処理が完了したあとは混在コンテンツチェックの結果を確認できます。混在コンテンツが無ければ「データ削除」しておしまいですが、見つかった場合は結果を保存するなりしてコンテンツを修正します。一度チェックしたい場合はサービスページをリロードしてもう一度、STEP1から実行してください。認証用ファイルはそのまま再利用が可能ですので再アップロードの必要はありません。全て完了したら「データ削除」を押して結果データを消去してください。ヘルプその他の使い方、既知の問題等をここに書いています。10000ページ以上チェックしたい10,000ページ以上チェックしたい場合はサイトマップで分けて登録してください。このブログを例にした場合はこのように指定できます。全体:ttps://worklog.be/sitemap.xml2019年3月のみ:https://worklog.be/sitemap-pt-post-2019-03.xmlまた、WordPressの場合はカテゴリーや日付等のアーカイブページが自動で作成されるので、把握している以上にページ数が多くなる場合があります。これらを除外したい場合はプラグインで設定してください。処理が一向に完了しない「処理状況を確認」ボタンを押した時に「サイトを巡回中です。***ページ)」と表示され、クロール数が一向に増えない場合はクローラーがハングアップしている可能性があります。その場合はお手数ですが問い合わせフォームよりご連絡ください。Chekerのプログラム内容について簡単に書き残しておきたいと思います。構成このサービスはこのような構成で動いています。4.0.6Scrapy、Flaskあたりは初めて使いましたがフレームワークってやっぱり便利ですね。mongodbを初めて使いましたが、カラムを気にせずにデータを格納できるって素晴らしいですね。自由気ままにプログラムを書いていたので柔軟性のあるmongodbには非常に助けられました。クローラーの処理についてクローラーはこのような流れで混在コンテンツを探します。全部わからなかったで、Chromeのブラウザログを使う方法を採用しました。Seleniumだけでも今回のようなサービスは作れたのですが、お題はScrapyだったので使うようにしました。併用すればクローラーの制御が簡単になるし、クローラーのデバックもしやすいのでScrapyを軸にして良かったです。アクセス解析を無効化する方法としてbrowsermob-proxyを使っている点で、ここを起点としたエラーがたまに起きてしまう事があります。browsermob-proxy以外の選択肢としてはSquidやprivoxyというプロキシサーバを使う方法があります。AdSenseをはじめユーザー情報を取得しようとする外部サービスを弾いてくれます。Torも噛ませる事ができるのでクローラー自体の情報も守りたい時にはオススメです。デフォルトでどこまで弾いているのかを調べきれなかったので一番シンプルなbrowsermob-proxyを採用しました。フレームワークって覚えるまでが大変ですが一回わかってしまえばどんどんクローラーを作れるのでScrapyはもう手放させないですね。