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

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

新規登録して質問してみよう
ただいま回答率
85.48%
スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

Python

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

Scrapy

Scrapyは、Pythonで開発されたオープンソースソフトウェアです。スクレイピングという、Webサービスから必要な情報を取り出したり自動操作をしたりする技術を使うものです。

Q&A

解決済

1回答

1250閲覧

Scrapy 初心者

PPAP_AWS

総合スコア105

スクレイピング

スクレイピングとは、公開されているWebサイトからページ内の情報を抽出する技術です。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

コマンドライン

コマンドライン(別名:Command Line Interface)は、ユーザに命令の入力を促す(プロンプト)文字列の表示を行い、すべての操作をキーボードを用いて文字列を打ち込む事でプログラムを走らせるユーザインターフェースです。

Python

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

Scrapy

Scrapyは、Pythonで開発されたオープンソースソフトウェアです。スクレイピングという、Webサービスから必要な情報を取り出したり自動操作をしたりする技術を使うものです。

0グッド

0クリップ

投稿2020/10/29 11:58

編集2020/10/29 12:00

参考書通りに読み。進めているのですが、部分理解に欠けるので、質問させていただきます。
ご教授おお願い致します。

#まず、jupyterlabにてコードを実行しています。
・Scrapyをjupyterlabでインストール。

python

1pip install Scrapy 23Collecting scrapy 4 Using cached Scrapy-2.4.0-py2.py3-none-any.whl (239 kB) 567・  8 Using cached pyasn1-0.4.8-py2.py3-none-any.whl (77 kB) 9Collecting pyasn1-modules 10 Using cached pyasn1_modules-0.2.8-py2.py3-none-any.whl (155 kB) 11Requirement already satisfied: setuptools in /Users/oki/.pyenv/versions/3.8.2/lib/python3.8/site-packages (from zope.interface>=4.1.3->scrapy) (41.2.0) 12Collecting jmespath>=0.9.5 13 Using cached jmespath-0.10.0-py2.py3-none-any.whl (24 kB) 14Collecting idna>=2.5 15 Using cached idna-2.10-py2.py3-none-any.whl (58 kB) 16Collecting pycparser 17 Using cached pycparser-2.20-py2.py3-none-any.whl (112 kB) 18Using legacy 'setup.py install' for Twisted, since package 'wheel' is not installed. 19Using legacy 'setup.py install' for protego, since package 'wheel' is not installed. 20Using legacy 'setup.py install' for PyDispatcher, since package 'wheel' is not installed. 21Installing collected packages: queuelib, zope.interface, constantly, incremental, attrs, Automat, idna, hyperlink, PyHamcrest, Twisted, pycparser, cffi, cryptography, pyasn1, pyasn1-modules, service-identity, itemadapter, protego, pyOpenSSL, w3lib, lxml, PyDispatcher, jmespath, cssselect, parsel, itemloaders, scrapy 22 Running setup.py install for Twisted ... done 23 Running setup.py install for protego ... done 24 Running setup.py install for PyDispatcher ... done 25Successfully installed Automat-20.2.0 PyDispatcher-2.0.5 PyHamcrest-2.0.2 Twisted-20.3.0 attrs-20.2.0 cffi-1.14.3 constantly-15.1.0 cryptography-3.2.1 cssselect-1.1.0 hyperlink-20.0.1 idna-2.10 incremental-17.5.0 itemadapter-0.1.1 itemloaders-1.0.3 jmespath-0.10.0 lxml-4.6.1 parsel-1.6.0 protego-0.1.16 pyOpenSSL-19.1.0 pyasn1-0.4.8 pyasn1-modules-0.2.8 pycparser-2.20 queuelib-1.5.0 scrapy-2.4.0 service-identity-18.1.0 w3lib-1.22.0 zope.interface-5.1.2 26WARNING: You are using pip version 20.2.2; however, version 20.2.4 is available. 27You should consider upgrading via the '/Users/oki/.pyenv/versions/3.8.2/bin/python -m pip install --upgrade pip' command. 28Note: you may need to restart the kernel to use updated packages.

##pip Ver up

pip

1Requirement already up-to-date: pip in /Users/MMM/.pyenv/versions/3.8.2/lib/python3.8/site-packages (20.2.4)

###参考書の手順に沿うと。
1、scrapyコマンドを使ってプロジェクトを作成。
2、spiderクラスを記述してクロールとデータの取得処理を作成。
3、コマンドラインからscrapyを実行する。

python

1$scrapy startproject soseki_list 2コード

####①soseki_listプロジェクトを作成と記載されていたので。
ローカルに、desktop/soseki_list/spiders/soseki.pyを作成しました。(解釈があっているか曖昧です。)
しかしここで、参考書は、上記のコードを実行すれば
soseki_list/
|-scrapy.cfg---設定ファイル
|-soseki_list---これいかがpythonモジュール
|init_.py etc...
が自動生成されると記載せれているのですが、上記のコードを実行してもされなかったため①を自分で作成しました。

#####2,spiderクラスの作成

python

1import scrapy 23class SosekiSpider(scrapy.Spider): 4 name = 'soseki' 5 start_urls = [ 6 'https://www.aozora.gr.jp/index_pages/person148.html' 7 ] 8 9 def parse(self, response): 10 title = response.css('title') 11 print(title.extract())

エラーはなく。通りましたが、何も変化ありません。ローカルにファイルが作成されてもいません。

コマンドラインから実行して結果を得る。
######次に、

python

1scrapy crawl soseki --nolog 23File "<ipython-input-13-f83148b5f8ab>", line 1 4 scrapy crawl soseki --nolog 5 ^ 6SyntaxError: invalid syntax

python

1['<titile>作家別作品リスト:夏目漱石</titile>'] 23['<titile>作家別作品リスト:夏目漱石</titile>']

#######次に作品一覧を取得するように作り込む。

python

1import scrapy 23class Soseki2Spider(scrapy.Spider): 4 name = 'soseki2' 5 start_urls = [ 6 'https://www.aozora.gr.jp/index_pages/person148.html' 7 ] 8 9 def parse(self, response): 10 li_list = response.css('ol > li a') 11 for a in li_list: 12 href = a.css('::attr(href)').extract_first() 13 text = a.css('::text').extract_first() 14 href2 = response.urljoin(herf) 15 yield { 16 'text': text, 17 'url': href2 18 }

########spiderクラスの作成と同じく、エラーはなく。通りました。
そして、

python

1scrapy crawl soseki2 -o list.json 23 File "<ipython-input-17-58ab94a1f4cf>", line 1 4 scrapy crawl soseki2 -o list.json 5 ^ 6SyntaxError: invalid syntax

とエラーが出てしまいます。

何が間違っているのか。
ご指摘、ご教授を初心者向けにわかりやすくご説明くださると幸いです。
よろしくお願い致します。

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

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

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

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

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

guest

回答1

0

自己解決

検索し、自己解決済。

投稿2020/12/10 11:38

PPAP_AWS

総合スコア105

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

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

退会済みユーザー

退会済みユーザー

2020/12/10 11:47

自己解決であれば、「解決した方法を具体的に」記述してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問