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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Spyder

Spyderとは、Pythonで分析するために作られたIDEです。プログラムの編集・実行・入力補完・デバッグなどの基本的なIDE機能の他、科学用途の計算をするために要するライブラリも装備。公式・サードパーティ製のプラグインもあり、機能を拡張することもできます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

3回答

920閲覧

ホームページを大量に集めたい。どうすればいいですか?

h5x

総合スコア11

Perl

Perlは多目的に使用される実用性が高い動的プログラミング言語のひとつです。

Spyder

Spyderとは、Pythonで分析するために作られたIDEです。プログラムの編集・実行・入力補完・デバッグなどの基本的なIDE機能の他、科学用途の計算をするために要するライブラリも装備。公式・サードパーティ製のプラグインもあり、機能を拡張することもできます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

2クリップ

投稿2021/11/10 03:28

検索エンジンなど大量のHPを収集してそこから様々な有用な情報を引き出したり、タグ付けして管理していると思います。
個人でその元情報となるHPを大量に収集したいと思っているのですがどのような方法がありますか?
大量にデータを集めるフリーソフトなどはありますか?
それとも、検索エンジンのようにリンクを置いながら片っ端から集めるようなソフトを自作する必要がありますか?
もしくは、どこかにHPを集めたデータサイトなどありますでしょうか?
なお、現在の所規模が大きくなりすぎるとHDDに入りませんので日本語サイトで文字のみに限定し、日記など個人が頻繁に更新しているサイトやニュースサイトのみを対象に考えています。
ホームページを大量に集める良い方法を教えていただければ幸いです。
宜しくお願い致します。

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2021/11/10 03:48

検索エンジンはデータ引き出したりしてないかと。headerタグ内の情報やGoogleならサイト管理で登録された情報を見てるだけです。
m.ts10806

2021/11/10 03:50

検索エンジンを作るのではなく自身の都合のいいものだけを集めたいなら自身でやるしかないのでは。
h5x

2021/11/10 03:56

コメントいただきありがとうございます。 例えばGoogleで「液晶」を検索すると、headerに液晶という単語のないホームページでも、本文中に液晶を含むページがヒットします。 その為、検索エンジンは、一度は、対象となるホームページを収集し、そこから文字列を解析しているものと思います。その、元となるデータを収集したいのですがどのようにすればいいでしょうか?
h5x

2021/11/10 04:09 編集

コメントいただきありがとうございます。 実際にはGoogleでは検索結果が遅いことが多く、少しでも新しい情報のヒットする半リアルタイム検索エンジンのようなものを作りたいのですが、まずは、その為の元となるデータを大量に集めたいのですが、集めるためのソフトや集めた後のデータは公開されていませんかね? 以前、特定サイトに大量にアクセスを行うとそれ以上のアクセスが行えなくなってしまいました。その為、自分で作成するよりも技術のある人の作ったソフトを利用させてもらったり、他のスパイダーが集めた物が共有できれば相手サーバへの負荷が削減できますし良いと思うのですがないものでしょうかね?
miyabi_takatsuk

2021/11/10 04:19 編集

サイトの検索能力などは、どうあがいてもGoogleに及ぶものは作れないと思います。 Googleは、巨大なデータセンターを保有しているので(物理的にも巨大な)個人がいくらやっても敵うものにはなりえないでしょう。 できたとしても、根っこはGoogle検索のAPIを使用、とかに止まるかと。 Pythonタグを付けていることから、 人工知能必要かも使うかもと、察知しているとお見受けしますので、そこらへんで、また深く調査されてはいかがでしょうか? ちなみに、Googleは、ロボットが、 ネットワークを徘徊して、サイトを集めています。
h5x

2021/11/10 04:43 編集

コメントありがとうございます。 Googleに勝てるものは多分作れると思います。全世界のHPから探すようなものは無理ですが、日本語である程度限られたカテゴリに特化したものであれば、Googleは想像以上にゆっくり(もしくはSEOを無視した趣味サイトはランキングが非常に低い)しか反映されませんのでまだまだ勝ち目はあると思っています。といいますか自分でGoogle検索してもヒットしない個人ブログが多く不便で作りたいと思ったのも動機です。 また、仰るように現代では無料で使える機械学習のライブラリも膨大にあり、今更ながら検索エンジンに興味が湧いたというのもあります。それが無理でも、速度に特化したものであれば単純な正規表現だけでも面白いものは作れるのではないかと思っています。 集めるためのスクリプトもPythonやPerlなどである程度分かりますので助かる感じです。 ただ、perlで試験的にデータ収集をしたのですが5分に1回のアクセスでも同じドメインだとアクセス禁止になるところもあり、データ収集でつまずいており困っている感じです。 それでも、サーチエンジンは上手にデータを収集していますし、まずは、データの収集を行いたいと思っています。 何か良いデータ収集スクリプトやその結果の共有などがあればサーバ負荷も抑えられより効率的にデータを集められうのではないかと思っています。
KojiDoi

2021/11/10 05:22

要は、自作ソフトの検証用のデータが欲しいということでしょうか。perlが判るのなら、自分でダミーデータを拵えて何百ページでも生成すればいいのでは?
miyabi_takatsuk

2021/11/10 06:40

志は素晴らしいとは思います。 > perlで試験的にデータ収集をしたのですが 申し訳ございません、 バックエンドで、そのような実装をされているなら、私が知っている技術・知識は、 すでに質問者さんの方でも有していると思いますので、 これ以上何も言えないのですが、 一人でやろうとせず、同志を募って、チームでやられるとよろしいかと。 一人の技術・発想などでは限界はでますゆえ。
h5x

2021/11/10 06:57

コメントいただきありがとうございます。 KojiDoi さま 検証だけで言えば単純に正規表現で抜き出すだけでもそれなりに使えました。今欲しいのは検証用ではなく本番用のデータです。最低でも出来ればブログだけで100万ページは欲しく思っています。ただ、あるサイトなど3日程度アクセスし続けるとエラーを吐くようになったりします。Googleなどはそれでも集めていますし個人では難しいのでしょうかね? miyabi_takatsuk さま とりあえず、もう少し大規模にデータを集めて意味あるデータがでてきそうかだけでもはっきりしてから考えようと思っています。 スパイダーも実際に作ると、実際には無意味なページを延々と集め続けたりして無駄に相手サーバに負荷を与えるなどおかしな事も多く難しかったりします。ただ、検索エンジンの最も基礎となる部分ですので、ある程度はスパイダーソフトも公開されているものがあればと思っています。最近は皆Googleだけでいちから検索サイトを作ろうという人はいなくなってしまったのですかね・・・
m.ts10806

2021/11/10 07:48

Googleは検索エンジンだけが仕事じゃないですよ。
h5x

2021/11/10 08:26

コメントいただきありがとうございます。 そうなのですが今はググる機能の元データについて考えています。余談ですが、昔、私もHPを作っていましたが、5秒に1回、DBから表示していたページを全てクロールされました。他にも様々なエンジンが来ていましたが、転送エラーが出て困っていました。ただ、エラーが出てもそれをエンジンが判断するのは遅くちょくちょくサーバが落ちていたりしました。誰かがクロールしたらそれを共有してもらえば同じサイトを何度もクロールするリソースのムダは産まないのにと思ったりしていました。今もlwpやSeleniumなどで延々とアクセスするしか無いのでしょうかね?
m.ts10806

2021/11/10 08:48

Twitterの利用者面だけ見て「同じものが作れる」と言ってるような気もしたので。 スクレイピングに類する行為をするのであればかなりグレーなところになるのでご注意を(Googleがどうやってクリアしてるのかはさておき、膨大な投資をして実現している以上は簡単に思いついたりできるような仕組みにはなってないと思います)。
FKM

2021/11/10 08:59

質問者の使いたいと思っている言語はわかりませんが、 クローラで検索すると簡易的なものなら色々出てきます その簡易的なものを作ってみて、流れを把握することですかね。
h5x

2021/11/10 09:27

m.ts10806さま そのツイッターと発想は同じです。ただ、ツイッターと異なり投稿してもらうような大規模な自前サイトはありませんので他人のBlogをその大元にしたいと思っています。 なお、スクレイピングについては完全に白ではないでしょうか?知識が基本的に15年前で止まっているのですが、昔は日本では法律の関係で検索エンジンが作れないと言われていたと思います。ただ、現在はデータ解析や検索エンジン用途であればOKになったはずです。また、規約についてはログインが必要なものは別として、そのままアクセスができるものは完全に白だったかと思います。そうでなければ、私がこのHPにアクセスしたら1アクセスに付き、情報提供料として0.01ドル払うとか設定した、とんでもHPを作ることも可能になります。アクセスするだけで同意とか違法というのは恐らくありえないかと思います。 FKMさま 検索ワードを教えてくださりありがとうございます。 オープンソース Webクローラー で色々見つかりました。 最近は、robots.txtを解釈できるクローラもあるのですね。 勉強になりました。
kai0310

2021/11/10 10:52

1秒間に大量のアクセスをした場合、攻撃した意図が全くなくても攻撃と見做されてもそれは妥当です。 禁止事項をよく読むことや、法律の専門家に聞いてみてください。
quickquip

2021/11/10 11:37 編集

> ただ、現在はデータ解析や検索エンジン用途であればOKになったはずです。 だからこそ集めたコンテンツをダウンロード可能な状態にしてどこかに置くことが黒であろうと考えられるのです。 クローリングして集めたコンテンツは「データ解析したり検索結果のスニペットに使っている限り」は白ですよとなっているのであって、コンテンツ(=誰かの著作物)をアーカイブしてどんとダウンロード可能な状態にしてどこかに置いたら「その白である範囲」を超えますよね。
h5x

2021/11/10 14:31

miyabi_takatsukさま kai0310さま 私のサイトだともう時効ですが、5秒に1回Googleからアクセスが有りました。実際に、サーバが度々落とされましたよ。犯人はGoogle、YST、MSN、Bauduのいずれかが暴れたときです。ただ、オープンにしている以上落とされても文句は言えないかなぁーと思っていました。私のサイトですら落とされるわけで、現実には遥かに多くのサイトが被害にあっていると思いますが事件になったのは数えるほどかと。一応、レスポンスが200以外かファイルサイズが小さい場合にはエラーと見做しクロールを止めるようにはしています。その為、今、収集が止まっている感じです。 > quickquip 私もそれは思っています。ただ、合法的な抜け道がないかは気になっています。もしくは、何かしら専用のソフトで負荷をかけずにという感じです。というのも上で私のHPの例を出しましたが、サーバが落とされたことが何度かあります。令和の時代でも本当に一人ひとりが実際にアクセスをしないと駄目なのかなどは気になっています。場合によってはテスト用に限定して海外サーバのみクロールするのもありかとも思っています。そもそも、同じデータを取得するのにキャッシュサーバ利用的なことも不可で必ず自分がアクセスする必要があることが必須なのかなども気になるところです。 なお、不可なら不可で自分でアクセスするわけですが、大手エンジンがやっているようにアクセス禁止になること無くデータ収集ができる方法があればと思い今回こちらで質問をさせていただいた次第です。
shiketa

2021/11/14 03:08

> h5x 2021/11/10 13:37 編集 > Googleに勝てるものは多分作れると思います。 きたいしてます。
guest

回答3

0

ベストアンサー

そういう情報がすでにどこかにあるということは無いでしょうね。

クローラであくせくと集めるのが結局は一番はやいかと。
ただ、ジャンルを絞るとした場合、何を見て絞ればいいかについては既存のノウハウなどは無い(入手できない)と思うので、やっていきながらチューニングしていく必要はあるでしょう。
googleも結局はそういう努力をして「有用な」検索エンジンになったのだと思っています。googleが出てくる前の検索エンジンなんて、ゴミが大量に混っているものがほとんどでした。

投稿2021/11/10 10:56

TakaiY

総合スコア12801

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

episteme

2021/11/10 11:28

大量のゴミをかき集めるのみならず、その中から金目の物を篩にかけることがGoogleのパワーなんでしょな。
h5x

2021/11/10 14:11

過去が美化されすぎているかもしれませんが、当時はテキストメインでマニアックな情報が多かったように思います。今のGoogleはGoogleAdsenseや広告のあるページなどSEOに成功した物がヒットします。良いサイトと言うよりもGooleにとってお金になるサイトや平均的なことの書いてあるサイトばかりで内容はマニアックなことになると70点程度。昔は多くが10点でも、120点のような内容に意味のあるサイトもたくさんあったように思います。Web人口も少なくゴミが少なかったように思います。今でもSEOを気にすること無く、PVを気にせず人知れずHPを更新し続けているようなサイトが見つけられればと思っています。 他にも大量の生データがあればそこからデータマイニング的なこともしてみたいと思っています。 いずれにしても、解析に必要なだけの元となるデータの入手が必須になりますが、ここで躓いている感じです。 GoogleとかBaiduとか総務省のBotなどアクセス禁止になること無くどうやって集めてるのか気になります。
guest

0

個人でその元情報となるHPを大量に収集したいと思っているのですがどのような方法がありますか?

検索エンジンの歴史を調べると良いかと。

大量にデータを集めるフリーソフトなどはありますか?

探せばあるとは思いますが、それに要件が合うかどうかは回答者には分かりません。

それとも、検索エンジンのようにリンクを置いながら片っ端から集めるようなソフトを自作する必要がありますか?

追記修正依頼欄見てると要件的にあんま良くなさそうです。

もしくは、どこかにHPを集めたデータサイトなどありますでしょうか?

Google


無作為に巡回したくないなら、ディレクトリ型検索エンジンみたいなのを作ることになると思います。かつての、Yahoo! カテゴリ、goo カテゴリー検索ですね。全てサービス終了してますが。

現在主流のロボット型検索エンジンで行きたいなら、「とりあえず取得して、プログラムでインデックスするか確認しよう」みたいな方針になると思います。リソースの割にインデックスできるの少なそうですが。

投稿2021/11/13 08:03

kyoya0819

総合スコア10429

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

h5x

2021/11/13 08:51

回答いただきありがとうございます。 私のサイトにも様々なクローラーが毎秒来ていましたし、基本的にはクローラーを改造して頑張る他無さそうですね。
guest

0

そのそも必要なインフラの規模が個人では賄えないので、スポンサーでも見つけてください。
データ量の試算は以下の資料を参考にすると良いです。
インターネット検索エンジンの現状と
市場規模等に関する調査研究

投稿2021/11/10 08:07

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

h5x

2021/11/10 08:17

回答いただきありがとうございます。 ある特定の分野で日本人の個人が発信するブログに限定した場合、その規模は極めて小さくなるかと思います。特にここはGoogleが弱く(下手すると月単位で更新されず、ヒットしても非常に低い順位で事実上使えない)まだまだ参入できる余地が大きいと思っています。また、資料にある頃の速度は非常に遅かったですが、現在ではFTTHを使えます。更に解析するためのツールも格段に向上しています。 現在、効率的なデータ収集の方法がネックになっており悩んでいます。
退会済みユーザー

退会済みユーザー

2021/11/10 09:45

> 現在ではFTTHを使えます。更に解析するためのツールも格段に向上しています。 だから試算しましょうよ。 資料から、JP ドメインの総ページ数の推測が出来ます。 一ページ当たり 0.1 秒で情報取得できるとして、およそ 1 年で一周できます。 あとはコレをどの程度多重化するかですが、100 並列アクセスとしても 3 日程度かかります。 実際には JP ドメインだけではないでしょうし、個人でやるのは無謀かなぁと。
h5x

2021/11/10 14:02

特定分野に限ればそこまで行かないと思います。ある関連ワードでGoogle検索したら100万ページも無いですので。とりあえずは100万ページ程度を目指そうと思っています。また、HDDに収まる容量であったら機械学習させるにも手持ちのリソースでできますのでコスト0円ですので実験するには丁度いいかと思っています。。 ただ、それ以前にデータを集めるというところでアクセス禁止になったりと、初っ端躓いており100万ページは遠い感じです。 GoogleとかBaiduとか総務省のBotとかどうやって集めてるのやら・・・
退会済みユーザー

退会済みユーザー

2021/11/10 23:08

試算してみました? 100 並列アクセスとしても 1 日程度かかります。 > GoogleとかBaiduとか総務省のBotとかどうやって集めてるのやら・・・ 高々100万程度のページ収集には使えないので詳しくは書きませんが、サーチエンジンを気にするサイトは自主的に「インデックスに登録」してます。
h5x

2021/11/13 09:01

ある程度は試しています。補足でも書いたのですが大量にアクセス巣をすると相手サーバから拒否され困ったりしていました。時間については1日であれば余裕です。Googleなどマイナーサイトなど月単位と反映がものすごく遅いか100位以下で事実上ヒットしませんので クロールについて私のHPに来ていたYSTやGoogleBotのログをみるとIPを分散して多数回のアクセスでした。機械的にIP制限を掛からない工夫をしていたようです。VPSなどを使ってIP分散しつつアクセスしていくのが現実的かもですね。 インデックスは私も昔SEOが流行る前にこまめに登録していましたが、ここ10年くらいは何もしなくても勝ってにクロールされるようになっているようです。SEOを気にするサイトは広告を見てもらうことが目的になっており本当にいい情報というのは書かれていない気がしています。できれば広告なしの趣味性の高いHPのみを厳選して集めたいところです。(場合によっては広告なしのみ判別しながら集める)なんというか、近年のHPはアルバイターを雇って本で調べたりネットで調べたまとめ記事みたいな感じでどこにでもある情報ばかりでGoogle検索結果に満足できなくなっています。
退会済みユーザー

退会済みユーザー

2021/11/13 10:44 編集

試算しましょうよ。。。 100 並列アクセスに必要なインフラ、試算しましたか? 多分、それをさらに解析するんだと思いますが、0.1 秒の前提で良いのですか? あまりにもふわっとした感覚で進めようとしているので、プロジェクトの実現性を適当なコンサルに整理してもらった方が良いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問