91064


[【スパイダー — Scrapy 1.7.3 ドキュメント】](https://doc-ja-
scrapy.readthedocs.io/ja/latest/topics/spiders.html)

python初めて数ヶ月の初学者です。  
クローラー・ウェブスクレイピングツールscrapyの公式ドキュメントを読んでいて、以下のような記述がありました。  
この`class scrapy.spiders.Spider`という記述は、それぞれ何を表すものなのでしょうか？

`クラス（オブジェクト）名.メソッド名`などであればわかるのですが、これが意味する記載が内容がわかりません。  
`パッケージ名.モジュール名.クラス名`でしょうか？

pythonにおける記述ルールの見落としていればご教授いただけると幸いです。  
[![画像の説明をここに入力](https://i.stack.imgur.com/QKj2W.png)](https://i.stack.imgur.com/QKj2W.png)


CC BY-SA 4.0
2022-09-12T11:57:40.887
91062
2022-09-12T17:40:45.747
27812
question
python web-scraping
class scrapy.spiders.Spider　は何を意味しているのか


Pythonの説明文書を適用すると、それは`パッケージ名.サブモジュール名.クラス名`あるいは`パッケージ名.サブパッケージ名.クラス名`ですね。

この辺の記述が当てはまるでしょう。  
[6\. モジュール](https://docs.python.org/ja/3.10/tutorial/modules.html#modules)

> Python では定義をファイルに書いておき、スクリプトの中やインタプリタの対話インスタンス上で使う方法があります。このファイルを モジュール
> (module) と呼びます。

> モジュールは Python の定義や文が入ったファイルです。ファイル名はモジュール名に接尾語`.py`がついたものになります。

[6.4. パッケージ](https://docs.python.org/ja/3.10/tutorial/modules.html#packages)

> パッケージ (package) は、Python のモジュール名前空間を "ドット付きモジュール名" を使って構造化する手段です。例えば、モジュール名
> A.B は、`A`というパッケージのサブモジュール`B`を表します。

上記では **サブモジュール** と書かれていますが、こちらのファイルツリー構造の説明では **Subpackage** と書かれています。  
なお最初の階層は **Top-level package** と書かれています。

>
[code]

>     sound/                          Top-level package
>           __init__.py               Initialize the sound package
>           formats/                  Subpackage for file format conversions
>                   __init__.py
>                   wavread.py
>  
[/code]

...以下省略

上記に紹介したPythonの説明文書ページの他の内容も色々と参考になるでしょう。

* * *

scrapyとしての詳細はこちらのGitHubリポジトリの階層分けやソースコード内容を見てください。  
[scrapy/scrapy/](https://github.com/scrapy/scrapy/tree/master/scrapy)

`Spider`クラスが定義されているのはこちらのファイルです。  
[scrapy/scrapy/spiders/__init__.py](https://github.com/scrapy/scrapy/blob/master/scrapy/spiders/__init__.py)


CC BY-SA 4.0
2022-09-12T17:40:45.747
91064
2022-09-12T17:40:45.747
26370
91062
answer