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等字样说明按章成功。

Note:部分机器可能安装失败,可以尝试将 Twisted-17.9.0-cp35-cp35m-win_amd64.whl文件移动到  $python/Scripts/   目录下,重新安装。

 

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 : 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文件中;

如果出现如下错误请看对应解决办法:

Scrapy运行错误:ImportError: No module named win32api

Python3.5下安装&测试Scrapy的更多相关文章

  1. Python3.X下安装Scrapy

    Python3.X下安装Scrapy (转载) 2017年08月09日 15:19:30 jingzhilie7908 阅读数:519 标签: python   相信很多同学对于爬虫需要安装Scrap ...

  2. centos7 python3.5 下安装paramiko

    centos7 python3.5 下安装paramiko 安装开发包 yum install openssl openssl-devel python-dev -y 安装pip前需要前置安装setu ...

  3. 在python3.5下安装scrapy包

    此前scrapy只支持python2.x 但是最新的1.1.0rc1已结开始支持py3了 如果电脑上安装了scrapy的依赖包,诸如lxml.OpenSSL 1.你直接下载Scrapy-1.1.0rc ...

  4. python3 linux下安装

    1.下载 https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tgz 2.安装 上传到linux服务器 #进入上传文件的目录 cd /app/pr ...

  5. 在Python3.5下安装和测试Scrapy爬网站

    1. 引言 Scrapy框架结构清晰,基于twisted的异步架构可以充分利用计算机资源,是爬虫做大的必备基础.本文将讲解如何快速安装此框架并使用起来. 2. 安装Twisted 2.1 同安装Lxm ...

  6. win7中python3.4下安装scrapy爬虫框架(亲测可用)

    貌似最新的scrapy已经支持python3,但是错误挺多的,以下为在win7中的安装步骤: 1.首先需要安装Scrapy的依赖包,包括parsel, w3lib, cryptography, pyO ...

  7. 在Windows10 64位 Anaconda4 Python3.5下安装XGBoost

    系统环境: Windows10 64bit Anaconda4 Python3.5.1 软件安装: Git for Windows MINGW 在安装的时候要改一个选择(Architecture选择x ...

  8. Windows python3.3下安装BeautifulSoup

    首先在官网下载:http://www.crummy.com/software/BeautifulSoup/#Download BeautifulSoup在版本4以上都开始支持python3了,所以就下 ...

  9. 关于在Python3.6下安装MySQL-python,flask-sqlalchemy模块的问题

    这周末在学习Flask框架的时候,有需要安装MySQL-python模块,一开始用pip安装: pip install MySQL-python 但是安装的时候报错了: error: command ...

随机推荐

  1. spring cloud ribbon和fegin

    一开始接触spring cloud的时候,还没有听说过微服务这个概念,对于服务直接的沟通是什么个情况,怎么组成微服务的完全懵逼,看到网上的教程都是用ribbong和fegin来调用接口,然后官网也给的 ...

  2. 使用Python Shapefile Library创建和编辑Shapefile文件

    介绍 shapefile是GIS中非常重要的一种数据类型,在ArcGIS中被称为要素类(Feature Classes),主要包括点(point).线(polyline)和多边形(polygon).P ...

  3. php实现socket推送技术

    在socket出现之前已经有ajax定时请求.长轮询等方案,但都不能满足需求,socket就应用而生了. socket基本函数socket 总结下常用的socket函数 服务端: socket_cre ...

  4. 2、各种折腾,安装交叉环境的gcc和qt,测试c++和qt程序

    本博文仅作本人操作过程的记录,留作备忘.自强不息 QQ1222698 1.安装gcc和qt 把光盘里带的gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX2 ...

  5. 英雄联盟LOL用什么语言写的?

    是用openGL开发的 开发语言是c/c++ 客户端是一个.net的web界面

  6. g4e基础篇#2 Git分布式版本控制系统的优势

    g4e 是 Git for Enterprise Developer的简写,这个系列文章会统一使用g4e作为标识,便于大家查看和搜索. 章节目录 前言 1. 基础篇: 为什么要使用版本控制系统 Git ...

  7. Webpack 2 视频教程 013 - 自动分离 CSS 到独立文件

    原文发表于我的技术博客 这是我免费发布的高质量超清「Webpack 2 视频教程」. Webpack 作为目前前端开发必备的框架,Webpack 发布了 2.0 版本,此视频就是基于 2.0 的版本讲 ...

  8. requireJS(版本是2.1.15)学习教程(一)

    一:为什么要使用requireJS? 很久之前,我们所有的JS文件写到一个js文件里面去进行加载,但是当业务越来越复杂的时候,需要分成多个JS文件进行加载,比如在页面中head内分别引入a.js,b. ...

  9. python 模块:xlrd && xlwt

    主要来自:http://www.jb51.net/article/60510.htm python读excel--xlrd 这个过程有几个比较麻烦的问题,比如读取日期.读合并单元格内容.下面先看看基本 ...

  10. angular4.0中form表单双向数据绑定正确姿势

    issue:用[(ngModel)]="property"指令双向数据绑定,报错. reason1:使用ngModel绑定数据需要注入FormsModule模块,在app.modu ...