Python3.5下安裝&測試Scrapy
1、引言
Scrapy框架結構清晰,基於twisted的異步架構可以充分利用計算機資源,是做爬蟲必備基礎,本文將對Scrapy的安裝作介紹。
2、安裝lxml
2.1 下載地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 選擇對應python3.5的lxml庫
2.2 如果pip的版本過低,先升級pip:
python -m pip install -U pip
2.3 安裝lxml庫(先將下載的庫文件copy到python的安裝目錄,按住shift鍵並鼠標右擊選擇“在此處打開命令窗口”)
pip install lxml-4.1.1-cp35-cp35m-win_amd64.whl
看到出現successfully等字樣說明按章成功。
3、 安裝Twisted庫
3.1 下載鏈接:https://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted 選擇對應python3.5的庫文件
3.2 安裝
pip install Twisted-17.9.0-cp35-cp35m-win_amd64.whl
看到出現successfully等字樣說明按章成功。
4、安裝Scrapy
twisted庫安裝成功後,安裝scrapy就簡單了,在命令提示符窗口直接輸入命令:
pip install scrapy
看到出現successfully等字樣說明按章成功。
5、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 : ItcastSpider.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 items.append(item) return items
編寫完成後復制至項目的 \allister\spiders目錄下,cmd選擇項目根目錄輸入以下命令:
scrapy crawl ic2c -o ic2c_infos.json -t json
抓取的數據將以json的格式存儲在ic2c_infos.json文件中;
如果出現如下錯誤請看對應解決辦法:
Python3.5下安裝&測試Scrapy