質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.10%

WEBページの保存を自動化する方法

受付中

回答 7

投稿

  • 評価
  • クリップ 0
  • VIEW 8,058

score 102

とあるWEBページの保存をしたいと思っています。
理由は仕事のことなので明かせないのですが、早い話、サーバー移転等の都合により、現在の場所にWEBページを置けなくなってしまい、引っ越す必要が出てきました。
しかし、保存したいと考えているページは、今後はWEB上で公開しない方針のページです。しかし、職場内での希望によりページだけ残すことになりました。

自分なりにPythonとDBを連携させて、元のとおりに保存できるようにしようなど悪戦苦闘してみたのですが、本職ではないこともありうまくいかずに断念しました。
年度末には移転がされてしまうため、それまでにページの状態だけでも保存しようと思っているのですが、IE標準で搭載されている「ファイルを名前を付けて保存する」の場合ですと、1サイトあたり100ページ以上はあるため、相当な時間を使うことになります。人海戦術ができるだけの余力もありません。

そこで教えていただきたいのは、PowerShellなど言語は問わないので、WEBページの保存を自動化できるようなスクリプトやソフトウェアなどについてです。
自分なりに探してはみたのですが、うまく動作してくれなかったり、単一ページの自動保存だったりと思うようなものに出会えない状況です。
WEBサイト全体を自動的に保存してくれるようなスクリプトやソフトウェアはないでしょうか。

要件は、
・WEBサイトのページ保存を自動化できること
・ファイルの保存形式は問わないが、.mht又は.html、もしくはその両方が保存できること
・テキストデータから一覧を読み込んで順に取得するのではなく、同一URL内を自動で探索して順に保存してくれること
あたりができれば文句はありません。

なお、今時ありえない話ではあるのですが、そのWEBサイトにはCSVやテキストなどでWEBサイトの元データを出力させる機能がついておらず、管理者の方では予算も限られていることから、機能を追加することもできないそうです。
本来ならば、管理者の都合なので何とかしてもらいたいところですが、取り合っていただけませんでした。

どうか力を貸してください。

よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 7

+3

人海戦術をオススメします。1ページ1分として1サイト100分です。
多分、知識をつけるよりもアプリを探すよりも早く、確実にダウンロードできます。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

こんにちは。

各種保存ツールがあるようです。
久しく使っていないので最近の性能は把握していませんが、昔は完璧なツールは存在していませんでした。WEB技術はどんどん進化しつつ多様化しているので状況はより悪くなっているかも知れません。
下手に自動化に頼るより、te2jiさんが言っているように人海戦術の方がより短時間で済むかも知れません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

なぜftpを使わないのかよくわかりませんが、なにか深い事情があるのでしょう。
生成された結果よりも、エンジンとデーターを引っ越した方がいいと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

ええ?
これどうやってアップロードしたんですか?
名前を付けて保存だと、CGI や PHP などのサーバーサイドで動的に生成されるページが固定されてしまいますよね?

FTP でアップロードされたのであれば、その逆に FTP でダウンロードできるはずです。
そうでないなら、投稿などによって動的に構成されたページだと思いますので、HTTP でのダウンロードはお勧めしません。

自社サイトであれば、WordPress などでしたらバックアップ機能を使い、そうでなければ FTP でダウンロードするのが最適解だと思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/02/13 18:48

    DB という単語が出ているところを見ると、おそらくはレンタルサーバーで、ひょっとしたら WordPress などですよね?
    であるならバックアップ機能がついていると思いますので、それを使って投稿を一括ダウンロードし、新サーバーにレストアするのが良いと思います。
    バックアップの仕方についてはそのサーバーの管理者にお尋ねいただければ、なんらかの回答があると思います。

    キャンセル

0

静的なコンテンツだけなら

wget -r -l 0 http://~


で再帰的にゴリゴリ保存することを考えましたが。

・ファイルの保存形式は問わないが、.mht又は.html、もしくはその両方が保存できること

「mht」形式で保存は厳しいですね。
あと、動的なコンテンツとかも。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

ブラウザ「Firefox」の拡張機能「ScrapBook」とかどうですか。
ページ構成とかによって難があるかもしれませんが、
結構便利ですよ。

ただ、検証とかどうされるんですかね。
そう考えると人海戦術が一番かもしれません。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

0

以下に記しておきます

1. Octoparse

OctoparseはWebサイトからデータを抽出できる強力なWebクローラーツールで、WindowsとMacに対応できます。海外の製品ですが、日本語サービスも提供し、アプリのUIでも日本語化しています。Octoparseは内蔵ブラウザを備えており、マウスクリックで簡単にデータを抽出できます。それに、ソフトを使いやすくするために、Yahooショッピング、楽天、マイナビ転職、Twitterなど数多くのWebクローラーテンプレートを提供しています。パラメータ(ターゲットページのURL、検索キーワードなど)を入力するだけで、データがどんどん抽出されてきます。取得したデータをCSV、Excel、またはデータベースなどの構造化フォーマットとして保存できます。

それに、クラウド型プラットフォームも提供するので、スケジュール設定が可能で、リアルタイムデータを自動抽出し、Webサイトの更新情報をいつでもアクセスできます。ハードウェア保守も不要だし、ネットワーク中断に心配する必要もありません。IPが自動的に巡回できるので、アクセス拒否を効果的に避けられます。

また、内蔵正規表現ツールを使って、多くの複雑なWebサイトからデータを抽出でき、XPathツールを使ってWeb要素を正しく見つけることができます。

結論として、Octoparseは、コーディングスキルが必要としなく、無料版でも十分な機能を備え、ユーザーのほとんどのデータ収集ニーズを満たすことができます。それに、有料プランなら、14日間の無料トライアルも提供しています。

 2. Cyotek WebCopy

WebCopyは、その名前のように、部分的または完全なWebサイトをローカルハードディスクにコピーすることを可能にする無料のWebクローラーです。

その設定を変更して、ボットにクローリングの方法を伝えることができます。それに加えて、ドメインエイリアス、ユーザーエージェント文字列、デフォルトドキュメントなども設定することができます。

ただし、WebCopyには仮想DOMやいかなる形式のJavaScript解析も含まれていません。WebサイトがJavaScriptを多用して動作している場合、WebCopyが本物のコピーを作成できない可能性が高くなります。 JavaScriptを頻繁に使用するため、動的なWebサイトのレイアウトを正しく処理できないからです。

3.HTTrack

無料のWebクローラーツールとして、HTTrackはWebサイト全体をPCにダウンロードする機能を提供します。 Windows、Linux、Sun Solaris、および他のUnixシステムで利用可能なバージョンがあり、ほとんどのユーザーに対応しています。 HTTrackが1つのサイト、または複数のサイトを(共有リンクを使用して)ミラーリングすることができます。「オプションの設定」で、Webページのダウンロード中に同時に開く接続の数を決定できます。ミラーリングされたWebサイトから画像、ファイル、HTMLコードを取得し、中断したダウンロードを再開することもできます。

さらに、抽出スピード速度を最大化するためにHTTTrack内でプロキシサポートを利用できます。

HTTrackは、コマンドラインプログラムとして、またはプライベート(キャプチャ)またはプロフェッショナル(オンラインWebミラーリング)の両方でシェルを介して動作します。 そのため、高度なプログラミングスキルを持つ人にとっては、HTTrackはいい選択肢です。

  1. Getleft 

Getleftは無料で使いやすいWebクローラーツールです。Webサイト全体または任意の1つのWebページをダウンロードできます。Getleftを起動した後、URLを入力し、サイトを表示する機能があるため、開始する前にダウンロードするファイルを選択できます。ダウンロードしたページは、相対リンクに変更されるので、オフラインでのブラウズが容易です。さらに、多言語サポートを提供し、今まで 14種の言語をサポートするようになりました。ただし、FTPは限定サポートで、ファイルをダウンロードできますが、繰り返し用いられません。

とりあえず、Getleftはより複雑なスキルを必要とせず、基本的なクローリングニーズを満たす便利なツールです。

  1. Scraper

ScraperはWebデータを手軽に取得できるChrome拡張機能で、オンライン調査やGoogleスプレッドシートへのデータエクスポートに役立ちます。これでWeb上のデータを、エクセルやスプレッドシートに保存でき、データ収集の手間がかなり省けます。Scraperは無料のWebクローラーで、ブラウザでよく機能し、クローリングするURLを定義するためのXPathを自動生成します。データ抽出機能が限られていますが、スクレイピングの知識がない初心者にとっては使いやすいツールです。

  1. OutWit Hub

OutWit Hubは、Webデータ抽出機能を備えたFirefoxアドオンで、Web検索を簡単にさせます。このWebクローラーは、ページを閲覧し、抽出された情報を適切な形式で保存できます。

OutWit Hubは、ニーズに応じて、大量のデータをスクレイピングできる単一のインターフェースを提供しています。OutWit Hubを使うと、ブラウザ自体から任意のWebページをスクレイピングしたり、自動エージェントを作成してデータを抽出したり、設定によってフォーマットすることさえもできます。

これは最も簡単なWebスクレイピングツールの1つで、無料で使用でき、コードを書くことなくWebデータを抽出できるのに便利です。

  1. ParseHub

Parsehubは、AJAXテクノロジ、JavaScript、Cookieなどを使用するWebサイトからのデータ収集をサポートする優れたWebクローラーです。Webドキュメントを読み取り、分析してから関連データに変換できる機械学習テクノロジを応用しています。

Parsehubのデスクトップアプリケーションは、Windows、Mac OS X、Linuxなどのシステムをサポートしています。ブラウザ内に組み込まれているWebアプリを使用することもできます。

無料ツールとして、Parsehubにはプロジェクトを5つしか設定できません。有料プランでは、Webサイトをスクレイピングするクローラーを少なくとも20個作成できます。

8.Visual Scraper 

VisualScraperは、簡単なポイントアンドクリックのインターフェイスを備え、もう1つの優れた無料のWebクローラーです。コードを書くことなく、複数のWebページからリアルタイムのデータを取得し、抽出したデータをCSV、XML、JSONまたはSQLファイルとしてエクスポートできます。 SaaS以外にも、VisualScraperはデータ配信サービスや抽出ソフトウェアの作成などのWebスクレイピングサービスを提供しています。

Visual Scraperを使うと、ユーザーは自分のプロジェクトを特定の時間に実行するようにスケジュールしたり、分、日、週、月、ごとにスクレイピングを繰り返すことができます。ニュース、フォーラムなど頻繁に更新するデータを抽出できるのは魅力です。

9.Scrapinghub

Scrapinghubは、何千人もの開発者が貴重なデータを取得するのに役立つクラウドベースのデータ抽出ツールです。そのオープンソースの視覚的なWebクローラーツールは、ユーザーがプログラミングの知識なしでWebサイトをスクレイピングすることを可能にします。

Scrapinghubは、ボット対策の回避をサポートするスマートプロキシローテーターCrawleraを使って、巨大なまたはボットで保護されたサイトを簡単にクローリングできます。これにより、ユーザーは単純なHTTP APIの代わり、複数のIPと場所からスクレイピングすることを可能にします。

ScrapinghubはWebページ全体を構造化されたコンテンツに変換します。このツールが要件を満たすことができない場合、専門家チームを利用することできます。

10.Dexi.io

ブラウザベースのWebクローラーツールとして、Dexi.ioは、3つのタイプのロボット(Extractor、Crawler、Pipes)を提供し、任意のWebサイトからデータをスクレイピングすることができます。

Dexi.ioには、スクレイピングしたデータをGoogleドライブに直接保存したり、JSONやCSVファイルとしてエクスポートする機能もあります。また、匿名Webプロキシサーバーも提供しています。収集したデータは、アーカイブされる前にDexi.ioのサーバーで2週間ホストされます。リアルタイムデータを取得するためのニーズに合わせて有料サービスを提供しています。

11.Webhose.io

Webhose.ioを使用すると、世界中のオンラインソースをさまざまなクリーンな形式にクロールして、リアルタイムのデータを取得できます。このWebクローラーを使うと、さまざまなソースをカバーする複数のフィルターを使用でき、取得したデータからさまざまな言語のキーワードをさらに抽出することができます。

スクレイピングしたデータをExcel、XML、JSON、RSSなども形式で保存でき、アーカイブから履歴データにアクセスすることができます。さらに、webhose.ioは取得したデータを最大80種言語でサポートします。ユーザーはWebhose.ioによってクロールされた構造化データに簡単にインデックスを付けて検索することができます。

とにかく、Webhose.ioはユーザーの基本的なクローリング要件を満たすことができます。

  1. Import. io

Import. IoはURLを入力するだけでデータの抽出ができるWebクローラーツールです。コードを書くことなく数千のWebページを数分で簡単にスクレイピングでき、要件に基づいて1000を超えるAPIを構築できます。クラドベースのサービスであるため、ソフトウェアなどのダウンロードやインストールは一切必要ありません。Import.ioは、Webデータを独自のアプリまたはWebサイトに統合することで、数回クリックするだけでクローリングすることができます。

ユーザーのスクレイピング要件を満たすために、Windows、Mac OS X、およびLinux用の無料アプリも用意しています。データ抽出プログラムとクローラーを作成し、データをダウンロードしてオンラインアカウントと同期します。さらに、毎時、毎週、毎日のスクレイピング作業をスケジュールできます。

13.80legs 

80legsは、カスタマイズ要件に基づいて設定できる強力なWebクローラーツールです。膨大な量のデータを取り込むことができ、抽出されたデータを即時にダウンロードするオプションもあります。80legsは、無料からでも利用でき、1回あたり10,000 URLまでわずか数秒でデータを取得できる高性能クローリング体験を提供します。

14.Spinn3r

Spinn3rでは、ブログ、ニュース、ソーシャルメディアサイト、RSS、ATOMフィードからデータ全体を取得することができます。Spinn3rは、インデックス作成作業の95%を管理するFirehouse APIと共に配布されています。スパムや不適切な言語の使用を排除し、データの安全性を高める高度なスパム対策を提供しています。

Spinn3rはGoogleのように、コンテンツを索引付けし、抽出したデータをJSONファイルに保存します。 Webクローラーは度々にWebサイトをスキャンし、複数のソースから更新するのもを見つけてリアルタイムの内容を取得します。その管理コンソールではクローリングを制御でき、全文検索では生データに対して複雑なクエリを実行できます。

15.Content Grabber

Content Graberは、企業向けのWebクローラーツールです。単独なWebクローリングエージェントを作成できます。ほぼすべてのWebサイトからコンテンツを抽出し、Excel、XML、CSV、およびほとんどのデータベースなどの任意の形式で構造化データとして保存できます。

多くの強力なスクリプト編集とデバッグインターフェースを提供するから、Content Graberは高度なプログラミングスキルを持つ人に向いています。ユーザーはC#またはVB.NETを使って、スクリプトをデバッグまたは書き込んで、クローリングプロセスを制御することができます。たとえば、Content GrabberはVisual Studio 2013と統合して、ユーザーの特定のニーズに基づいて、高度で洗練されたカスタマイズされたクローラーに最も強力なスクリプト編集、デバッグ、単体テストをサポートします。

  1. Helium Scraper 

Helium Scraperは、可視化なWebクローラーツールで、要素間の関連が小さい場合にも非常にうまく機能できます。コーディング、配置すること必要がなく、ユーザーはさまざまなクローリングニーズに基づいてオンラインテンプレートを利用することができます。普通には、初級レベルのユーザーのクローリングニーズを満たすことができます。

  1. UiPath

UiPathは、UiPath社が提供しているRPAツールですほとんどのサードパーティ製アプリからWebおよびデスクトップデータを自動抽出できます。Windows上で実行すれば、ロボティックプロセスオートメーション(RPA)ソフトウェアをインストールできます。Uipathは、複数のWebページにわたってテーブル形式およびパターンベースのデータを抽出することができます。

Uipathはクローリングするための組み込みツールを提供して、複雑なUIを扱うときに非常に効果的です。スクリーンスクレイピングツールは、個々のテキスト要素、テキストグループ、テキストブロック(テーブルデータなど)を処理できます。

さらに、インテリジェントなWebエージェントを作成するためにプログラミングは必要ありませんが、内部の.NETハッカーがデータを完全に制御できます。

18.Scrape. it

Scrape.it はクラウドベースのWebデータ抽出ツールで、node.jsのWebスクレイピングに使われています。世界中の何百万もの開発者とコードを発見、再利用、更新、共有できるパブリックパッケージとプライベートパッケージの両方を提供しているため、高度なプログラミングスキルを持つユーザー向けに設計されました。その強力な統合は、ニーズに合わせてカスタマイズされたクローラーを構築するのを助けます。

19.WebHarvy 

WebHarvy は非プログラマーのために設計されているポイントアンドクリック式のWebクローラーツールです。WebHarvyは自動的にWebサイトからテキスト、画像、URLおよびメールをスクレイピングし、様々なフォーマットで保存することができます。

また、匿名でクローリングを可能にする組み込みスケジューラとプロキシサポートを提供し、WebクローラーがWebサーバによってブロックされるのを防ぐことができます。プロキシサーバまたはVPN経由でターゲットWebサイトにアクセスするすることもできます。

WebHarvy現在のバージョンでは、スクレイピングしたデータをXML、CSV、JSONまたはTSVファイルとしてエクスポートでき、SQLデータベースにエクスポートすることもできます。

20.Connotate

Connotateは企業規模Webデータ抽出用に設計された自動化Webクローラーです。ユーザーは、コードを書くことなく、ポイントアンドクリックだけで抽出エージェントを簡単に作成できます。

Ajaxなどの複雑なJavaScriptベースの動的サイト技術を含め、コーデイングなしで95%以上のサイトを自動的に抽出することができます。

さらに、ConnotateはWebページとデータベースコンテンツを統合する機能も提供しています。データベース抽出のためのSQLデータベースとMongoDBからのコンテンツを含みます。

まとめ

Webコンテンツの作成から、大学などの研究機関、情報収集を専門とするアウトソーシング企業まで様々な企業や団体がデータ収集のニーズがあります。上記のWebクローラーツールは、ほとんどのクローリングニーズを満たすことができますが、これらのツール間ではそれぞれの機能に多くの違いがあります。したがって、大量のデータ取得や解析が必要な場合は、ニーズに合わせて最適なツールを使ってみると良いでしょう。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.10%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る