一、引言
Scrapy框架結構清晰,基於twisted的異步架構能夠充分利用計算機資源,是作爬蟲必備基礎,本文將對Scrapy的安裝做介紹。html
二、安裝lxml
2.1 下載地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 選擇對應python3.5的lxml庫python
2.2 若是pip的版本太低,先升級pip:json
python -m pip install -U pip
2.3 安裝lxml庫(先將下載的庫文件copy到python的安裝目錄,按住shift鍵並鼠標右擊選擇「在此處打開命令窗口」)api
pip install lxml-4.1.1-cp35-cp35m-win_amd64.whl
看到出現successfully等字樣說明按章成功。架構
三、 安裝Twisted庫
3.1 下載連接:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 選擇對應python3.5的庫文件框架
3.2 安裝dom
pip install Twisted-17.9.0-cp35-cp35m-win_amd64.whl
看到出現successfully等字樣說明按章成功。異步
Note:部分機器可能安裝失敗,能夠嘗試將 Twisted-17.9.0-cp35-cp35m-win_amd64.whl文件移動到 $python/Scripts/ 目錄下,從新安裝。scrapy
四、安裝Scrapy
twisted庫安裝成功後,安裝scrapy就簡單了,在命令提示符窗口直接輸入命令:ide
pip install scrapy
看到出現successfully等字樣說明按章成功。
五、Scrapy測試
5.1 新建項目
先新建一個Scrapy爬蟲項目,選擇python的工做目錄(個人是:H:\PycharmProjects 而後安裝Shift鍵並鼠標右鍵選擇「在此處打開命令窗口」),而後輸入命令:
scrapy startproject allister
對應目錄會生成目錄allister文件夾,目錄結構以下:
└── allister ├── allister │ ├── __init__.py │ ├── items.py │ ├── pipelines.py │ ├── settings.py │ └── spiders └── scrapy.cfg 簡單介紹個文件的做用: # ----------------------------------------------- scrapy.cfg:項目的配置文件; allister/ : 項目的python模塊,將會從這裏引用代碼 allister/items.py:項目的items文件 allister/pipelines.py:項目的pipelines文件 allister/settings.py :項目的設置文件 allister/spiders : 存儲爬蟲的目錄
5.2 修改allister/items.py文件:
# -*- coding: utf-8 -*- # Define here the models for your scraped items # # See documentation in: # https://doc.scrapy.org/en/latest/topics/items.html import scrapy class AllisterItem(scrapy.Item): name = scrapy.Field() level = scrapy.Field() info = scrapy.Field()
5.3 編寫文件 AllisterSpider.py
# !/usr/bin/env python # -*- coding: utf-8 -*- # @File : AllisterSpider.py # @Author: Allister.Liu # @Date : 2018/1/18 # @Desc : import scrapy from allister.items import AllisterItem class ItcastSpider(scrapy.Spider): name = "ic2c" allowed_domains = ["http://www.itcast.cn"] start_urls = [ "http://www.itcast.cn/channel/teacher.shtml#ac" ] def parse(self, response): items = [] for site in response.xpath('//div[@class="li_txt"]'): item = AllisterItem() t_name = site.xpath('h3/text()') t_level = site.xpath('h4/text()') t_desc = site.xpath('p/text()') unicode_teacher_name = t_name.extract_first().strip() unicode_teacher_level = t_level.extract_first().strip() unicode_teacher_info = t_desc.extract_first().strip() item["name"] = unicode_teacher_name item["level"] = unicode_teacher_level item["info"] = unicode_teacher_info yield item
編寫完成後複製至項目的 \allister\spiders目錄下,cmd選擇項目根目錄輸入如下命令:
scrapy crawl ic2c -o itcast_teachers.json -t json
抓取的數據將以json的格式存儲在ic2c_infos.json文件中;
若是出現以下錯誤請看對應解決辦法: