検索
ホームページバックエンド開発Python チュートリアルPython クローラー フレームワーク Scrapy の使用に関するチュートリアル

この記事では、Python クローラー フレームワーク Scrapy の使用に関するチュートリアルを紹介します。これには一定の参考価値があります。必要な友人は参照してください。お役に立てば幸いです。

皆さんこんにちは。この記事では、強力な Python クローラー フレームワーク Scrapy について説明します。 Scrapy は使いやすく強力な非同期クローラー フレームワークです。最初にそのインストールを見てみましょう。

Scrapyのインストール

Scrapyのインストールは非常に面倒で、Scrapyを使いたい人にとっては途中で死んでしまう人も少なくありません。ここでは、私のインストール手順とインターネット上でまとめたインストール方法を共有しますので、皆さんがスムーズにインストールできることを願っています。

Windows のインストール

始める前に、Python がインストールされていることを確認する必要があります。この記事では、例として Python3.5 を取り上げます。 Scrapy には多くの依存パッケージがあるので、それらを 1 つずつインストールしましょう。

まず、pip -v を使用して pip が正常にインストールされているかどうかを確認します。正常であれば次のステップに進みます。

pip install Wheel は、前の記事. インストール後、ホイールソフトウェアをインストールできます;

lxmlのインストール. 前回の記事でインストールについて触れましたので、ここで再整理してみます。 whl ファイルアドレス: ここ。対応するバージョンのファイルを見つけます。ダウンロード後、ファイルの場所を見つけて、ファイルのプロパティを右クリックし、セキュリティ ラベルをクリックして、そのパスをコピーします。管理者ツール (cmd) を開き、pip install

PyOpenssl whl ファイル アドレス: ここにします。クリックしてダウンロードし、whl ファイルのインストール方法は上記と同じです;

Twisted Framework このフレームワークは非同期ネットワーク ライブラリであり、Scrapy の中核です。 whl ファイル アドレス: ここ;

Pywin32 これは Pywin32 と互換性のあるライブラリです、ダウンロード アドレス: ここで、ダウンロードするバージョンを選択してください;

上記のライブラリがすべてインストールされている場合、私たちの Scrapy pip installscrapy

は非常に面倒ではありませんか?面倒な作業がしたくない場合は、Windows に非常に便利にインストールすることもできます。次に、前に説明した Anaconda を使用する必要があります。特定のインストールを自分で見つけることも、以前の記事で見つけることもできます。 Scrapy のインストールに必要なのは 1 行だけです:

conda installscrapy

Linux インストール

Linux システムのインストールはより簡単です:

sudo apt-get install build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev

Mac OS インストール

最初に、いくつかの C 依存ライブラリをインストールする必要があります (xcode -select) --install

コマンド ライン開発ツールをインストールする必要があります。クリックしてインストールします。インストールが完了すると、依存ライブラリもインストールされます。

次に、pip を使用して pip installscrapy を直接インストールします。

上記で、Scrapy ライブラリのインストールは基本的に解決されました。

Scrapy の基本的な使い方

Scrapy の中国語ドキュメントのアドレス: ここ

Scrapy は、Web サイトのデータをクロールし、構造データを抽出するために作成されたアプリケーション フレームワークです。データマイニング、情報処理、履歴データの保存などの一連のプログラムで使用できます。

彼の基本的なプロジェクト プロセスは次のとおりです:

Scrapy プロジェクトを作成する

抽出されたアイテムを定義する

Web サイトをクロールしてアイテムを抽出するスパイダーを作成します

抽出されたアイテム (つまり、データ) を保存するアイテム パイプラインを作成します。

通常、クローラー プロセスは次のとおりです。

インデックス ページをキャッチします。インデックス ページの URL をリクエストし、ソース コード、分析の次のステップを実行します;

コンテンツと次のページ リンクを取得します: ソース コードを分析し、インデックス ページ データを抽出し、次のページ リンクを取得して、クロールの次のステップを実行します。

ページ クロールを切り替える: 次のページの情報を要求し、コンテンツを分析し、次のページのリンクを要求します。

クロール結果を保存: クロール結果を特定の形式とテキストで保存するか、保存します。データベース。

使用方法を段階的に見てみましょう。

プロジェクトの作成

スクレイピングを開始する前に、新しい Scrapy プロジェクトを作成する必要があります。コードを保存するディレクトリを入力し、次のコマンドを実行します (Zhihu Daily を例にします):

scrapy startproject zhihurb

このコマンドは、次の内容を含む zhihu ディレクトリを作成します。 :

zhihurb/

scrapy.cfg

zhihurb/

    __init__.py

    items.py

    pipelines.py

    settings.py

    spiders/

        __init__.py

        ...

これらのファイルは次のとおりです:

scrapy.cfg: プロジェクトの構成ファイル zhihurb/: プロジェクトの Python モジュール。後でここにコードを追加します。 zhihurb/items.py: project 内のアイテム ファイル.zhihurb/pipelines.py: project 内のパイプライン ファイル.zhihurb/settings.py: project の設定ファイル.zhihurb/spiders/: スパイダー コードが配置されているディレクトリ

アイテムの定義

このステップでは、Web サイト内のいくつかの URL、Web サイトの記事のコンテンツ、記事の著者などこのステップが定義されている場所は items.py ファイル内です。

importscrapy

class ZhihuItem(scrapy.Item):

name = scrapy.Field()

article = scrapy.Field()

Writing Spider

このステップでは、私たちが最もよく知っているクローラーを作成します。 Scrapy フレームワークを使用すると、実装方法を考える必要がなく、クローリング ロジックを記述するだけで済みます。

まず、クローラー ファイルを Spiders/ フォルダーに作成する必要があります (たとえば、spider.py という名前です)。クローラーを作成する前に、最初にいくつかのコンテンツを定義する必要があります。 Zhihu Daily を例に挙げてみましょう: https://daily.zhihu.com/

fromscrapy import Spider

class ZhihuSpider(Spider):

name = "zhihu"

allowed_domains = ["zhihu.com"]

start_urls = ['https://daily.zhihu.com/']

这里我们定义了什么呢?首先我们导入了Scrapy的Spider组件。然后创建一个爬虫类,在类里我们定义了我们的爬虫名称:zhihu(注意:爬虫名称独一无二的,是不可以和别的爬虫重复的)。还定义了一个网址范围,和一个起始 url 列表,说明起始 url 可以是多个。

然后我们定义一个解析函数:

def parse(self, response):

print(response.text)

我们直接打印一下,看看这个解析函数是什么。

运行爬虫

scrapy crawl zhihu

由于Scrapy是不支持在IDE中执行,所以我们必须在命令行里执行命令,我们要确定是不是cd到爬虫目录下。然后执行,这里的命令顾名思义,crawl是蜘蛛的意思,zhihu就是我们定义的爬虫名称了。

查看输出,我们先看到的是一些爬虫类的输出,可以看到输出的log中包含定义在 start_urls 的初始URL,并且与spider中是一一对应的。我们接着可以看到打印出了网页源代码。可是我们似乎并没有做什么,就得到了网页的源码,这是Scrapy比较方便的一点。

提取数据

接着就可以使用解析工具解析源码,拿到数据了。

由于Scrapy内置了CSS和xpath选择器,而我们虽然可以使用Beautifulsoup,但是BeautifulSoup的缺点就是慢,这不符合我们Scrapy的风格,所有我还是建议大家使用CSS或者Xpath。

由于之前我并没有写过关于Xpath或者CSS选择器的用法,那么首先这个并不难,而且熟悉浏览器的用法,可以很简单的掌握他们。

我们以提取知乎日报里的文章url为例:

from scrapy import Request

def parse(self, response):

urls = response.xpath('//p[@class="box"]/a/@href').extract()

for url in urls:

    yield Request(url, callback=self.parse_url)

这里我们使用xpath解析出所有的url(extract()是获得所有URL集合,extract_first()是获得第一个)。然后将url利用yield语法糖,回调函数给下一个解析url的函数。

使用item

后面详细的组件使用留在下一章讲解,这里假如我们解析出了文章内容和标题,我们要将提取的数据保存到item容器。

Item对象相当于是自定义的python字典。 您可以使用标准的字典语法来获取到其每个字段的值。(字段即是我们之前用Field赋值的属性)。

假如我们下一个解析函数解析出了数据

def parse_url(self, response):

# name = xxxx

# article = xxxx

# 保存

item = DmozItem()

item['name'] = name

item['article'] = article

# 返回item

yield item

保存爬取到的数据

这里我们需要在管道文件pipelines.py里去操作数据,比如我们要将这些数据的文章标题只保留 5 个字,然后保存在文本里。或者我们要将数据保存到数据库里,这些都是在管道文件里面操作。我们后面在详细讲解。

那么最简单的存储方法是使用命令行命令:

scrapy crawl zhihu -o items.json

这条命令就会完成我们的数据保存在根目录的json文件里,我们还可以将他格式保存为msv,pickle等。改变命令后面的格式就可以了。

以上がPython クローラー フレームワーク Scrapy の使用に関するチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事はsegmentfault思否で複製されています。侵害がある場合は、admin@php.cn までご連絡ください。
Pythonの主な目的:柔軟性と使いやすさPythonの主な目的:柔軟性と使いやすさApr 17, 2025 am 12:14 AM

Pythonの柔軟性は、マルチパラダイムサポートと動的タイプシステムに反映されていますが、使いやすさはシンプルな構文とリッチ標準ライブラリに由来しています。 1。柔軟性:オブジェクト指向、機能的および手続き的プログラミングをサポートし、動的タイプシステムは開発効率を向上させます。 2。使いやすさ:文法は自然言語に近く、標準的なライブラリは幅広い機能をカバーし、開発プロセスを簡素化します。

Python:汎用性の高いプログラミングの力Python:汎用性の高いプログラミングの力Apr 17, 2025 am 12:09 AM

Pythonは、初心者から上級開発者までのすべてのニーズに適した、そのシンプルさとパワーに非常に好まれています。その汎用性は、次のことに反映されています。1)学習と使用が簡単、シンプルな構文。 2)Numpy、Pandasなどの豊富なライブラリとフレームワーク。 3)さまざまなオペレーティングシステムで実行できるクロスプラットフォームサポート。 4)作業効率を向上させるためのスクリプトおよび自動化タスクに適しています。

1日2時間でPythonを学ぶ:実用的なガイド1日2時間でPythonを学ぶ:実用的なガイドApr 17, 2025 am 12:05 AM

はい、1日2時間でPythonを学びます。 1.合理的な学習計画を作成します。2。適切な学習リソースを選択します。3。実践を通じて学んだ知識を統合します。これらの手順は、短時間でPythonをマスターするのに役立ちます。

Python vs. C:開発者の長所と短所Python vs. C:開発者の長所と短所Apr 17, 2025 am 12:04 AM

Pythonは迅速な開発とデータ処理に適していますが、Cは高性能および基礎となる制御に適しています。 1)Pythonは、簡潔な構文を備えた使いやすく、データサイエンスやWeb開発に適しています。 2)Cは高性能で正確な制御を持ち、ゲームやシステムのプログラミングでよく使用されます。

Python:時間のコミットメントと学習ペースPython:時間のコミットメントと学習ペースApr 17, 2025 am 12:03 AM

Pythonを学ぶのに必要な時間は、人によって異なり、主に以前のプログラミングの経験、学習の動機付け、学習リソースと方法、学習リズムの影響を受けます。現実的な学習目標を設定し、実用的なプロジェクトを通じて最善を尽くします。

Python:自動化、スクリプト、およびタスク管理Python:自動化、スクリプト、およびタスク管理Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Pythonと時間:勉強時間を最大限に活用するPythonと時間:勉強時間を最大限に活用するApr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python:ゲーム、GUIなどPython:ゲーム、GUIなどApr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、