ホームページ  >  記事  >  バックエンド開発  >  Web サイト クローラーの実用的な共有

Web サイト クローラーの実用的な共有

零下一度
零下一度オリジナル
2017-07-27 17:02:241328ブラウズ

生成背景

編集

インターネットの急速な発展に伴い、World Wide Web は大量の情報の伝達手段となり、この情報をどのように効果的に抽出して利用するかが大きな課題となっています。従来の一般的な検索エンジンである AltaVista、Yahoo!、Google などの検索エンジンは、人々の情報検索を支援するツールとして機能し、ユーザーが World Wide Web にアクセスするための入り口およびガイドとなります。ただし、これらの一般的な検索エンジンには、次のような制限もあります。

(1) 異なる分野やバックグラウンドを持つユーザーは、異なる検索目的やニーズを持っていることがよくあります。一般的な検索エンジンによって返される結果には、ユーザーが認識していない項目が多数含まれます。ウェブページを気にします。

(2) 一般的な検索エンジンの目標は、可能な限り最大のネットワーク範囲を達成することです。限られた検索エンジンのサーバー リソースと無制限のネットワーク データ リソースとの間の矛盾はさらに深刻になります。

(3) World Wide Web 上のデータ形式の豊富さとネットワーク技術の継続的な発展に伴い、画像、データベース、オーディオ、ビデオ マルチメディアなどのさまざまなデータが大量に出現します。一般的な検索エンジンはこれらに対して無力であることがよくあります。情報が密集しており、特定の構造を持つデータ。発見して取得するのに適しています。

(4) ほとんどの一般的な検索エンジンはキーワードベースの検索を提供しますが、意味情報に基づいたクエリをサポートすることは困難です。

Web クローラー

上記の問題を解決するために、関連する Web ページのリソースを特にキャプチャする集中型クローラーが登場しました。フォーカス クローラーは、確立されたクローリング目標に基づいて Web ページと関連リンクに選択的にアクセスし、必要な情報を取得するプログラムです。汎用 Web クローラーとは異なり、集中型クローラーは広範囲をカバーすることは追求しませんが、特定のトピック コンテンツに関連する Web ページをクロールし、トピック指向のユーザー クエリ用のデータ リソースを準備するという目標を設定します。

1 クローラーの動作原理と主要なテクノロジーの概要に焦点を当てます

Web クローラーは、検索エンジンのために World Wide Web から Web ページを自動的に抽出するプログラムであり、検索エンジンの重要なコンポーネントです。 。従来のクローラーは、1 つまたは複数の最初の Web ページの URL から開始し、Web ページをクロールするプロセス中に、現在のページから新しい URL を継続的に抽出し、特定の URL が見つかるまでキューに入れます。システムの停止条件が満たされています。フォーカスされたクローラーのワークフローはより複雑で、特定の Web ページ分析アルゴリズムに基づいてトピックに無関係なリンクをフィルタリングし、有用なリンクを保持してクロールを待つ URL キューに入れる必要があります。次に、特定の検索戦略に従ってキューから次にクロールする Web ページの URL を選択し、システムが特定の条件に達して停止するまで上記のプロセスを繰り返します。さらに、クローラによってクロールされたすべての Web ページはシステムによって保存され、後続のクエリと取得のために特定の分析、フィルタリング、インデックス付けが行われます。このプロセスで得られた分析結果は、次の目的のためにフィードバックやガイダンスを提供することもあります。今後のクローリングプロセス。

一般的な Web クローラーと比較して、集中型クローラーは次の 3 つの主要な問題も解決する必要があります:

(1) クロール対象の説明または定義

(2) Web ページまたはデータの分析とフィルタリング

(3) ) URL の検索戦略。

ウェブサイト クローラーは主に、ブログの下にあるすべての記事の内容とタイトルをクロールし、データ ディレクトリに保存します。詳細は以下の通りです:

import requestsimport re

url = ''def get_html(url):#打开url并获取该url的所有html信息html_content = requests.get(url).text#从html_conten所有的html信息中匹配到所有博客的超链接地址href_list = re.findall(r'href=\"(.*)\"\>(.*)\<\/a\>', html_content)for line in href_list:#打开超链接地址line_html = requests.get(line[0])
        conten = line[1]
        line_content = line_html.text
        line_encoding = line_html.encodingprint('文章标题:%s,文章编码:%s'%(conten, line_encoding))
get_html(url)

以上がWeb サイト クローラーの実用的な共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。