python3のWebクローラの戦闘-12展開関連のライブラリがインストールされています:ドッカー、Scrapyd

あなたは、大規模なデータを取得したい場合は、それは、分散クローラのために、私たちは確かに、各ホスト複数のタスクの爬虫類を複数のホストを必要とする、分散型クローラを使用しますが、ソースコードは、実際には唯一のものです。だから我々は何をする必要がある複数のホストアップ協力に展開コードをコピーされ、それを展開する方法を検討する価値質問です。

Scrapyのために、それはScrapydと呼ばれる拡張コンポーネントを持って、私たちは、ソースコードの展開を含めScrapyd Scrapyリモート管理タスクを、インストールする必要があり、タスクと他の操作を聴いて、タスクを開始します。動作の完了を配備し、監視するより簡単に私たちを助けるためにScrapydClientとScrapydAPIもあります。

そこドッカークラスタ配置を展開する方法は、我々は唯一の爬虫類ドッカーミラーのために作る必要があるホストがインストールされているように、ドッカーが長く、あなたが直接爬虫類を実行することができ、またある、および環境設定、バージョン管理の問題を心配する必要がなくなります。

このセクションでは、環境に関連する構成プロセスをご紹介します。

ドッカーインストール

ドッキングウィンドウは、アプリケーションが単純でサポートされているドッカー環境のいずれかに直接配布することができ適用可能なコンテナ技術とAPPの「アプリケーション」のiOS版の形に似た、別のを形成するために、パッケージ化するための環境ですコマンドが実行を開始します。ドッキングウィンドウは、実装の中で最も人気のあるコンテナの一つです。方法でパッケージングアプリケーションやサービスより軽量を実現し、仮想化技術、;と同様の仮想化技術は、それが大幅にアプリケーションやサービスの展開を容易にします。各アプリケーションは、ドッカーの使用は、同じマシン上で複数のアプリケーションを同時に実行し、互いに分離させるが、自分たちの中で、同じオペレーティング・システムを共有することができます。ドッカーの利点は、より詳細なレベルでリソースを管理するだけでなく、仮想化技術よりも多くのリソースを節約することができるということです。Pythonのリソース共有qun 784758214、インストールパッケージには、PDFは、ビデオを学ぶ、ここでは学習者のための集まる場所であるPythonの、ゼロベース、高度な、歓迎されている
この段落では、を参照してください。DaoCloudの公式ドキュメント
、我々は大規模が必要な場合は、爬虫類のために展開クローラーシステムは、その後、我々は最初にその利益の必要があり、ドッカーが大幅に効率が向上します使用しています。
この節では、3つの主要なプラットフォームの下に設置ドッカーをご紹介します。

1.リンク

2. Linuxのインストール

ステップのインストール手順による詳細なステップは、公式ドキュメントで見つけることができます。https://docs.docker.com/engin ....
公式文書の詳細なインストール方法別のLinuxシステムでは、インストールプロセスの実行が成功へのステップによる原稿段階に応じてインストールすることができます。
しかし、インストールを簡単にするために、ドッカー公式にもワンクリックでインストールスクリプトを提供し、それはインストールがより便利になります使用して、このワンクリックでスクリプトのインストールについて教えてくださいにインストールコマンドを実行するために段階的に行っていません。
最初は、他のスクリプトと比較して、インストールスクリプトドッカー公式のオファーで、次のように、より信頼性の高い公式、インストールコマンドでなければなりません。

curl -sSL https://get.docker.com/ | sh

限り、コマンドの実行など、ドッカーがインストールされますしばらく待って、それは非常に便利です。
しかし、公式のスクリプトのインストールは欠点があり、それは遅いです、ダウンロード速度を高速化するために、我々はインストールするために、国のミラーイメージを使用することができますので、それは、タイムアウトをダウンロードすることができるので、アリ雲とDaoCloudインストールスクリプトがあります。
アリクラウドのインストールスクリプト:

curl -sSL http://acs-public-mirror.oss-cn-hangzhou.aliyuncs.com/docker-engine/internet | sh -

DaoCloudインストールスクリプト:

curl -sSL https://get.daocloud.io/docker | sh

両方のスクリプトは、速度が非常に良いですが、いずれかを選択することができます。
仕上げにスクリプトを待った後、あなたは、このようなテストHello Worldのミラーを実行しているとして、ドッカー関連コマンドを使用することができます。

docker run hello-world

結果:

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
78445dd45222: Pull complete 
Digest: sha256:c5515758d4c5e1e838e9cd307f6c6a0d620b5e07e6f927b07d05f6d12a1ac8d7
Status: Downloaded newer image for hello-world:latest
Hello from Docker!
This message shows that your installation appears to be working correctly.

上記の内容は、同様のヒントを表示された場合には、ドッカー通常の使用を証明することができます。

3. Macの下に設置

MacプラットフォームもドッカーMacとドッカーツールボックスの2つのオプションがあります。
お使いのシステムがこの要件を満たしている場合、後でOS X EIキャプテン10.11たり、メモリの少なくとも4ギガバイトのためのMacのシステム要件については、ドッキングウィンドウは、強くMac用ドッカーをインストールすることをお勧めします。
自作を使用することができる次のように、インストールコマンドは次のとおりです。

brew cask install docker
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

また、手動でインストールパッケージ、インストールパッケージのダウンロードアドレスをダウンロードすることができます。https://download.docker.com/m ...
ダウンロードが完了したら、単純にインストールパッケージをダブルクリックし、アプリケーション・プログラムにドラッグすることができます。
ドッカーは、メニューバーのアイコンを、図1-83にある第三の小さなクジラのアイコンがあったことがわかります、ドッカーを実行するためのプログラムのアイコンをクリックしてください:

python3のWebクローラの戦闘-12展開関連のライブラリがインストールされています:ドッカー、Scrapyd

、1-83メニューバーを図
後でメニューを展開するアイコンをクリックして、ドッカーを開始するには[スタート]ボタンをクリックし、成功は図1-84に示すようにドッカーが、実行されて起動するように求められます。

python3のWebクローラの戦闘-12展開関連のライブラリがインストールされています:ドッカー、Scrapyd

図1-84 [実行]ページでは
、我々は、コマンドラインでドッカーコマンドを使用することができます。
あなたは、テストの実行には、次のコマンドを使用することができます。

sudo docker run hello-world

1-85演算結果を以下に示します。

python3のWebクローラの戦闘-12展開関連のライブラリがインストールされています:ドッカー、Scrapyd

1-85営業成績を図
出力がドッカーが正常にインストールされている証拠のように表示されます。
システムが要件を満たしていない場合は、ドッカーツールボックスをダウンロードすることができ、インストール手順は以下のとおりです。https://docs.docker.com/toolb ....
MacとドッカーToolboxの区別ドッカーでは、あなたが見ることができます:https://docs.docker.com/docke ....

4.ミラー加速

安装好 Docker 之后,在运行测试命令时,我们会发现它首先会下载一个 Hello World 的镜像,然后将其运行,但是下载速度有时候会非常慢,这是因为它默认还是从国外的 Docker Hub 下载的,所以为了提高镜像的下载速度,我们还可以使用国内镜像来加速下载,所以这就有了 Docker 加速器一说。
推荐的 Docker 加速器有 DaoCloud 和阿里云。
DaoCloud:https://www.daocloud.io/mirror
阿里云:https://cr.console.aliyun.com...
不同平台的镜像加速方法配置可以参考 DaoCloud 的官方文档:http://guide.daocloud.io/dcs/...。
配置完成之后,可以发现镜像的下载速度会快非常多。
以上便是 Docker 的安装方式说明。

Scrapyd的安装

Scrapyd 是一个用于部署和运行 Scrapy 项目的工具。有了它,你可以将写好的 Scrapy 项目上传到云主机并通过 API 来控制它的运行。
既然是 Scrapy 项目部署,所以基本上都使用 Linux 主机,所以本节的安装是针对于 Linux 主机的。

1. 相关链接

2. Pip安装

推荐使用 Pip 安装,命令如下:

pip3 install scrapyd

3. 配置

安装完毕之后需要新建一个配置文件 /etc/scrapyd/scrapyd.conf,Scrapyd 在运行的时候会读取此配置文件。
在 Scrapyd 1.2 版本之后不会自动创建该文件,需要我们自行添加。
执行命令新建文件:

sudo mkdir /etc/scrapyd
sudo vi /etc/scrapyd/scrapyd.conf

写入如下内容:

[scrapyd]
eggs_dir    = eggs
logs_dir    = logs
items_dir   =
jobs_to_keep = 5
dbs_dir     = dbs
max_proc    = 0
max_proc_per_cpu = 10
finished_to_keep = 100
poll_interval = 5.0
bind_address = 0.0.0.0
http_port   = 6800
debug       = off
runner      = scrapyd.runner
application = scrapyd.app.application
launcher    = scrapyd.launcher.Launcher
webroot     = scrapyd.website.Root

[services]
schedule.json     = scrapyd.webservice.Schedule
cancel.json       = scrapyd.webservice.Cancel
addversion.json   = scrapyd.webservice.AddVersion
listprojects.json = scrapyd.webservice.ListProjects
listversions.json = scrapyd.webservice.ListVersions
listspiders.json  = scrapyd.webservice.ListSpiders
delproject.json   = scrapyd.webservice.DeleteProject
delversion.json   = scrapyd.webservice.DeleteVersion
listjobs.json     = scrapyd.webservice.ListJobs
daemonstatus.json = scrapyd.webservice.DaemonStatus

配置文件的内容可以参见官方文档:https://scrapyd.readthedocs.i...,在这里的配置文件有所修改,其中之一是 max_proc_per_cpu 官方默认为 4,即一台主机每个 CPU 最多运行 4 个Scrapy Job,在此提高为 10,另外一个是 bind_address,默认为本地 127.0.0.1,在此修改为 0.0.0.0,以使外网可以访问。

4. 后台运行

由于 Scrapyd 是一个纯 Python 项目,在这里可以直接调用 scrapyd 来运行,为了使程序一直在后台运行,Linux 和 Mac 可以使用如下命令:

(scrapyd > /dev/null &)

这样 Scrapyd 就会在后台持续运行了,控制台输出直接忽略,当然如果想记录输出日志可以修改输出目标,如:

(scrapyd > ~/scrapyd.log &)

则会输出 Scrapyd 运行输出到 ~/scrapyd.log 文件中。
运行之后便可以在浏览器的 6800 访问 WebUI 了,可以简略看到当前 Scrapyd 的运行 Job、Log 等内容,如图 1-86 所示:

python3のWebクローラの戦闘-12展開関連のライブラリがインストールされています:ドッカー、Scrapyd

图 1-86 Scrapyd 首页
当然运行 Scrapyd 更佳的方式是使用 Supervisor 守护进程运行,如果感兴趣可以参考:http://supervisord.org/
另外 Scrapyd 也支持 Docker,在后文我们会介绍 Scrapyd Docker 镜像的制作和运行方法。

5. 访问认证

設定完了後Scrapyd限度であり、そのインターフェースは、アクセス認証を設定する場合、その後、あなたはnginxのサーバーをインストールする必要があることを意味nginxのリバースプロキシによって行うことができ、公にアクセス可能です。
ここでは、コマンドは次のインストールのUbuntuの例を説明します。

sudo apt-get install nginx

その後、nginxの設定ファイルnginx.confを変更するには、以下の設定を追加します。

http {
    server {
        listen 6801;
        location / {
            proxy_pass    http://127.0.0.1:6800/;
            auth_basic    "Restricted";
            auth_basic_user_file    /etc/nginx/conf.d/.htpasswd;
        }
    }
}

次のようにここで使用した構成でのユーザー名とパスワードがディレクトリに置かれ/etc/nginx/conf.d、私たちが作成するhtpasswdコマンドを使用する必要があり、例えば、adminという名前のユーザーのファイルを作成し、コマンドは次のとおりです。

htpasswd -c .htpasswd admin

継続的な内容を確認し、パスワード・ファイルを生成し、それを2回入力したパスワードを入力するように私たちを促し、となります

cat .htpasswd 
admin:5ZBxQr0rCqwbc

コンフィギュレーションは、我々はnginxのサービスを再起動完了したら、次のコマンドを実行します。

sudo nginx -s reload
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

これが成功しScrapydの認証にアクセスするように構成されました。

6.おわりに

このセクションでは、Scrapydのインストール方法を説明し、後で私たちは詳細に展開し、稼働状況の監視方法プロジェクトScrapyプロジェクトを知っています。

おすすめ

転載: blog.51cto.com/14445003/2425407