scrapyプロジェクトの作成
4047 ワード
scrapyプロジェクトの作成
分散型実戦(乾物)Spring cloud実戦(乾物)mybatis実戦(乾物)Spring boot実戦(乾物)React入門実戦(乾物)中小規模インターネット企業アーキテクチャ(乾物)の構築
python学習継続更新ElasticSearchノート概要
一、仮想環境の作成仮想環境はpython 3 です.
二、scrapyのインストール
インストールプロセスエラー
解決する https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted twisted対応バージョンのwhlファイル をダウンロード
(私のTwisted-17.9.0-cp 35-cp 35 m-win 32.whlのように)、cpの後ろにpythonバージョンがあり、amd 64は64ビットを表しています.
三、scrapyプロジェクトの作成
仮想環境への移行
workon article_spider
プロジェクトの作成
scrapy startproject ArticleSpiderは、テンプレート をカスタマイズすることもできる.
テンプレートの作成
プロジェクトの実行に入る:
scrapy genspider jobbole blog.jobbole.com
四、pychartインポートプロジェクトインポート後pycharmを設定する仮想環境 インストール
pypiwin32
分散型実戦(乾物)Spring cloud実戦(乾物)mybatis実戦(乾物)Spring boot実戦(乾物)React入門実戦(乾物)中小規模インターネット企業アーキテクチャ(乾物)の構築
python学習継続更新ElasticSearchノート概要
一、仮想環境の作成
mkvirtualenv article_spider
二、scrapyのインストール
(article_spider) C:\Users\Administrator>pip intsall -i https://pypi.douban.com/simple/ scrapy
インストールプロセスエラー
running build_ext
building 'twisted.test.raiser' extension
error: Microsoft Visual C++ 14.0 is required. Get it with
解決する
(私のTwisted-17.9.0-cp 35-cp 35 m-win 32.whlのように)、cpの後ろにpythonバージョンがあり、amd 64は64ビットを表しています.
(article_spider) C:\Users\Administrator>pip install G:\tools\pythontool\Twisted-17.9.0-cp35-cp35m-win32.whl
三、scrapyプロジェクトの作成
仮想環境への移行
workon article_spider
G:\pythonWorkspace>workon article_spider
(article_spider) G:\pythonWorkspace>
プロジェクトの作成
scrapy startproject ArticleSpider
(article_spider) G:\pythonWorkspace>scrapy startproject ArticleSpider
New Scrapy project 'ArticleSpider', using template directory 'e:\\python\\envs\\article_spider\\lib\\site-packages\\scrapy\\templates\\project', created in:
G:\pythonWorkspace\ArticleSpider
You can start your first spider with:
cd ArticleSpider
scrapy genspider example example.com
テンプレートの作成
プロジェクトの実行に入る:
scrapy genspider jobbole blog.jobbole.com
(article_spider) G:\pythonWorkspace\ArticleSpider>scrapy genspider jobbole blog.
jobbole.com
Created spider 'jobbole' using template 'basic' in module:
ArticleSpider.spiders.jobbole
四、pychartインポートプロジェクト
pypiwin32
(article_spider) C:\Users\Administrator>pip install pypiwin32
```
settings.py :
```
ROBOTSTXT_OBEY = False
```
scrapy shell
```
(article_spider) C:\Users\Administrator>scrapy shell https://blog.csdn.net/qq_27384769/article/details/79439922
```
```
>>> title = response.xpath("//*[@id='article_content']/div/ul/li[2]/p/a")
>>> title
[]
>>> title.extract()[0]
' git コマンドまとめ'
```
xpath
```
def parse(self, response):
title = response.xpath('//div[@class="entry-header"]/h1/text()').extract_first("")
create_date = response.xpath("//p[@class='entry-meta-hide-on-mobile']/text()").extract()[0].strip().replace("·","").strip()
praise_nums = response.xpath("//span[contains(@class, 'vote-post-up')]/h10/text()").extract()[0]
fav_nums = response.xpath("//span[contains(@class, 'bookmark-btn')]/text()").extract()[0]
match_re = re.match(".*?(\d+).*", fav_nums)
if match_re:
fav_nums = match_re.group(1)
comment_nums = response.xpath("//a[@href='#article-comment']/span/text()").extract()[0]
match_re = re.match(".*?(\d+).*", comment_nums)
if match_re:
comment_nums = match_re.group(1)
content = response.xpath("//div[@class='entry']").extract()[0]
tag_list = response.xpath("//p[@class='entry-meta-hide-on-mobile']/a/text()").extract()
tag_list = [element for element in tag_list if not element.strip().endswith(" ")]
tags = ",".join(tag_list)
pass
```