参考書通りに読み。進めているのですが、部分理解に欠けるので、質問させていただきます。
ご教授おお願い致します。
#まず、jupyterlabにてコードを実行しています。
・Scrapyをjupyterlabでインストール。
python
1pip install Scrapy 2↓ 3Collecting scrapy 4 Using cached Scrapy-2.4.0-py2.py3-none-any.whl (239 kB) 5・ 6・ 7・ 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を実行する。
1
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 2↓ 3class 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 2↓ 3File "<ipython-input-13-f83148b5f8ab>", line 1 4 scrapy crawl soseki --nolog 5 ^ 6SyntaxError: invalid syntax
↓
python
1['<titile>作家別作品リスト:夏目漱石</titile>'] 2↓ 3['<titile>作家別作品リスト:夏目漱石</titile>']
#######次に作品一覧を取得するように作り込む。
python
1import scrapy 2↓ 3class 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 2↓ 3 File "<ipython-input-17-58ab94a1f4cf>", line 1 4 scrapy crawl soseki2 -o list.json 5 ^ 6SyntaxError: invalid syntax
とエラーが出てしまいます。
何が間違っているのか。
ご指摘、ご教授を初心者向けにわかりやすくご説明くださると幸いです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/12/10 11:47