python3.5安装scrapy_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等字样说明按章成功。

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262501.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MMC无法创建管理单元

解决方法:经过我多方考证,原来只是一个小小的问题。那就是”环境变量”在作怪 1. 右键单击“我的电脑”,然后单击“属性”。 2. 在“高级”选项卡上,单击“环境变量”。 3. 在“系统变量”下,双击“PATH 环境变量”。…

第一个Sprint冲刺第六天

讨论成员:邵家文、李新、朱浩龙、陈俊金 讨论问题:解决编写代码的问题 讨论地点:宿舍 进展:已开始对代码的编写 转载于:https://www.cnblogs.com/shaojiawen/p/4970305.html

AspectJ基于xml和基于注解

一、基于xml 执行的切入点中具体方法有返回值,则方法结束会立即执行后置通知,然后再执行环绕通知的放行之后的代码; 2、连接点即所有可能的方法,切入点是正真被切的方法,连接点方法名: 其中,只有…

C++之private虚函数

一般我们说虚函数,它的访问级别都是public的,用类对象可以直接调用,这样就可以实现运行时的类型绑定,那如果我们将虚函数私有化会出现什么情况呢? 我们先来看一个非虚函数私有化的例子 class Base { private:void Prin…

M| SQL 导入导出的时候数据库表的主键和自动编号丢失 怎么办

--导入数据时,使用默认选项,会丢失主键、约束、默认值等属性,按如下步骤操作: --> 导出向导 --> 选择数据源 --> 选择目的 --> 指定表复制或查询:不要使用默认选项,选择“在…

设置堆内存大小_jmap和jhat命令行工具的配合使用,更好的掌握堆内存状况

Java的内存映像工具,jmap,Memory Map for Java,用于生成堆转储快照,一般成为heapdump或者dump文件,出了获取dump文件,这个工具还可以查询finalize执行队列,Java堆和永久代的详细信息&#xff0c…

MT-Retina.js

MT-Retina.js Github: MT-Retina.js serve high-resolution images to devices with retina displays. 之前月大总管写的为高分屏提供不同分辨率图像支持的插件&#xff0c;需求变动&#xff0c;增加了语言支持。 Usage add lib & config <script src"dist/retina.…

不同情况通知执行的顺序

1.service方法有返回值 无异常 XML ***************************************1.前置通知...deleteUser2.环绕通知...开启事务...deleteUser通过id删除用户3.后置通知...deleteUser返回值:14.环绕通知....提交事务...最终通知...deleteUser**********************************…

sessionState 配置方案

配置SQL Server Session方法 以下过程是在Win 2003 SP2 IIS 6.0, ASP.NET 2.0, SQL Server 2005下进行的。 1. 安装Session数据库 到Framework目录 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727运行下面的命令: aspnet_regsql.exe -ssadd -sstype c -d [DB] -S [Server] …

Open*** 服务器的搭建

服务介绍直译就是虚拟专用通道&#xff0c;是提供给企业之间或者个人与公司之间安全数据传输的隧道&#xff0c;Open无疑是Linux下开源的先锋&#xff0c;提供了良好的性能和友好的用户GUI。它大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函数库。实验拓扑图实验环境xuegod 63 …

怎么批量选择目标_全日制专升本一次可以报几个学校?目标院校应该怎么选择?...

很多普通专升本考生们在备考的时候会对报考环节存在疑问&#xff0c;比如&#xff0c;普通专升本可以报几个学校&#xff1f;报考院校怎么选择&#xff1f;下面我们就这两个问题进行解答。想要知道湖北普通专升本考试一次可以报几个院校和专业&#xff0c;我们不妨先来看看《省…

jdbcTemplate快速入门

一、 c3p0和dbcp区别 二、导包 hibernate通过映射自动创建表&#xff1b; 三、代码实现 转载于:https://www.cnblogs.com/wmqiang/p/11617387.html

使用SecureCrt远程登录Linux安装配置教程

1. 首先验证安装secureCRT的本地机和linux服务器能否ping的通&#xff1b; 2. 判断linux 服务端是否安装了ssh 若未安装的话&#xff1a; apt-get installopenssh-server 3. 备份sshd_config&#xff1a; sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.originalsudo chm…

VS-c# web程序:gridview保存Excel文件遇到的问题

1。Gridview1必须放在具有runatserver的窗体标记内 解决方法&#xff1a;在程序相应位置加上以下代码中绿色部分代码即可。 //按钮点击事件 protected void Button1_Click(object sender, EventArgs e) { Response.Clear(); DownloadExcelFla…

云服务器镜像麻烦吗_简单说说云服务器的镜像功能作用

不少小伙伴在创建云服务器的时候会看到镜像这个功能而且需要操作到&#xff0c;但是镜像的具体作用是什么完全不清楚&#xff0c;今天小编就带大家来简单了解一下。镜像是通过云服务器下的磁盘创建的副本文件&#xff0c;该文件包含了一块或多块磁盘的所有数据集合&#xff0c;…

bean.xml配置数据源和读取配置文件配置数据源

一、bean.xml配置数据源 bean.xml装配bean&#xff0c;依赖注入其属性的时候&#xff0c;对应实体类中属性一定要有set方法&#xff0c; 二、读取配置文件配置数据源 1、配置文件 bean.xml配置&#xff1a; classpath就是src目录下&#xff0c;${ } 当作是Spring表达式&#xf…

一个商城的购车相关代码

购物车类 using System;using System.Web.UI;using System.Collections; //使用Hashtable类必须引入该命名空间namespace EWang.BLL{ [Serializable] //定义商品类,保存商品的各种属性 public class CarData { long _pid; int _quality; deci…

csi python 摄像头 树莓派_树莓派之摄像头和人脸识别

安装好Python与树莓派外置硬件GPIO库文件sudo apt-get install python-rpi.gpio在python中使用GPIO示例&#xff1a;import RPi.GPIO as GPIO#### gpio initGPIO.setmode(GPIO.BCM)GPIO.setup(7, GPIO.OUT) #LED2GPIO.setup(8, GPIO.OUT) #LED1GPIO.output(7, GPIO.LOW) #LED2 …

dns-prefetch—DNS预解析技术

今天在看一个网站的源代码时 发现了 <link rel"dns-prefetch" href"//static.tuweia.cn/"> 对dns-prefetch有点儿好奇&#xff0c;因为不止一次地见到&#xff0c;今天终于忍不住要看看他到底是什么技术&#xff1f; 下面是在网上找到的一篇关于dns-…

用最简单的方法判断一个LONG整形的数A是2^n(2的n次方)

如果一个数是2的n次方,则化成二进制数肯定是 1000...000 的形式,那么 假设这个数是x,则 x-1 肯定是 0111...111 的形式,位数比x少一位 那么 x & (x-1) 则有 1000...000 & 0111...111 0000...000 所以当 x & (x-1) 0时,说明x是2的n次方 转载于:https://www.cnblo…