1.环境搭建

2.选择需要的.whl文件下载,一般选择最后的,感觉意思是最近更新的包,以下是.whl文件下载链接地址:

http://www.lfd.uci.edu/~gohlke/pythonlibs/

1.python:表示包文件。

2.whl 格式:这是一个压缩包,在其中包含了py文件,以及经过编译的pyd文件。

这个格式可以使文件在不具备编译环境的情况下,选择合适自己的python环境进行安装。

 

安装方法如下

进入命令行输入:pip install xxxx.whl

升级方法如下

进入命令行输入:pip install -U xxxx.whl

因为这个Scarpy是依赖这个Twised这个的  所以可以安装这个whl  文件  Scarpy依赖环境

E:\Develop\Scripts  这个目录下  cmd  pip install 安装

还有一种方法是安装  visualcppbuildtools_full   不过这个安装可能有点久

pip install scrapy

然后找到相应的 whl  Twised.whl  安装就好了   去到对应的路径安装

2.基本使用

因为不同于Django,flask  新建项目有选择的  所以我们只能通过命令来创建

scrapy startproject first-scrapy

创建一个爬虫   scrapy genspider 爬虫名 爬虫的地址  baidu  baidu.com

  • name: 它定义了蜘蛛的唯一名称

  • allowed_domains: 它包含了蜘蛛抓取的基本URL;(只认定这个域名)

  • start-urls: 蜘蛛开始爬行的URL列表;

  • parse(): 这是提取并解析刮下数据的方法;

运行爬虫  scrapy crawl 爬虫名

3.数据提取

第一步一定要记得修改User-Agent

不加这个  .extract返回一个unicode字符创      Selector返回的是选择器  为什么会返回的是选择器呢?这样还可以继续Xpath筛选

利用框架如何快速的爬取资料:先创建scrapy项目    设置请求头User-Agent  设置url

利用Scrapy自带的Xpath选择器筛选  输出即可  这是最简单的  输出到控制台

既然可以输出到控制台那么其实保存都文件也容易

json.cn

.csv  是一种表格的形式  可以用excel打开

在哪了提取这些数据  在response啊   可以直接

scrapy crawl zhongheng -o book.json

4.如何推送到 pipeline 

通过yield

然后item接受

打印item  但是和在spider中的输入输出不一样呀  并没有打印这个item 没有白色的日志

在setting中打开ITEM_PIPELINES  他是一个字典,前面是item_pipeline路径,数字表示优先级

“w”会覆盖以前的信息  “a”会追加

有一个问题是:文件会重复开启 如何让文件只开启一次呢

这就是利用pipeline保存我们数据的问题

在item模板中 无论什么数据类型

都可以用 scrapy fielter

这回推送的Item中的类对象 还是通过yield推送  所以还要记得转字典,也要记得转字符串

6.Scrapy 的细节

可以爬取 不同的网页,不同类型的网页,只需要写一个spider就好了。

但是我要怎么处理筛选呢? 通过response的url来判断  这是广度爬取

还有一个深度  一种爬虫方式。就是先遍历完左边的再慢慢的推到右边

小说练习

1.第一种找url规律的方法  看是否递增啥的

2.将所有的url都拿出来  挨个去访问

有一个叫文件流的东西,就是当只有内存的满了才会存到文件中

那怎么让它实时的存储呢  那就要用flush了

访问的间隔 download_delay = 3

第一部分完了

  大概的知道这个框架的运行流程了,也知道怎么用xpath了也可以连续的

爬取了,如何推送,如何的保存这些数据。这应该是小的一部分吧

在继承与CrawlSpider中  restrict  提取到那个标签就可以了

创建新的spider  用 -t  crawl  选择使用这个模板

copy  xpath  这么使用吗

 

2019.04.23 Scrapy框架的更多相关文章

  1. Python 爬取 北京市政府首都之窗信件列表-[Scrapy框架](2020年寒假小目标04)

    日期:2020.01.22 博客期:130 星期三 [代码说明,如果要使用此页代码,必须在本博客页面评论区给予说明] //博客总体说明 1.准备工作(本期博客) 2.爬取工作 3.数据处理 4.信息展 ...

  2. Scrapy爬虫框架(实战篇)【Scrapy框架对接Splash抓取javaScript动态渲染页面】

    (1).前言 动态页面:HTML文档中的部分是由客户端运行JS脚本生成的,即服务器生成部分HTML文档内容,其余的再由客户端生成 静态页面:整个HTML文档是在服务器端生成的,即服务器生成好了,再发送 ...

  3. 学习scrapy框架爬小说

    一.背景:近期学习python爬虫技术,感觉挺有趣.由于手动自制爬虫感觉效率低,了解到爬虫界有先进的工具可用,尝试学学scrapy爬虫框架的使用. 二.环境:centos7,python3.7,scr ...

  4. Python爬虫Scrapy框架入门(2)

    本文是跟着大神博客,尝试从网站上爬一堆东西,一堆你懂得的东西 附上原创链接: http://www.cnblogs.com/qiyeboy/p/5428240.html 基本思路是,查看网页元素,填写 ...

  5. Python使用Scrapy框架爬取数据存入CSV文件(Python爬虫实战4)

    1. Scrapy框架 Scrapy是python下实现爬虫功能的框架,能够将数据解析.数据处理.数据存储合为一体功能的爬虫框架. 2. Scrapy安装 1. 安装依赖包 yum install g ...

  6. 爬虫基础(五)-----scrapy框架简介

    ---------------------------------------------------摆脱穷人思维 <五> :拓展自己的视野,适当做一些眼前''无用''的事情,防止进入只关 ...

  7. Scrapy 框架简介

    Scrapy 框架 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的 ...

  8. [Python][Scrapy 框架] Python3 Scrapy的安装

    1.方法(只介绍 pip 方式安装) PS.不清楚 pip(easy_install) 可以百度或留言. cmd命令: (直接可以 pip,而不用跳转到 pip.exe目录下,是因为把所在目录加入 P ...

  9. 解读Scrapy框架

    Scrapy框架基础:Twsited Scrapy内部基于事件循环的机制实现爬虫的并发.原来: url_list = ['http://www.baidu.com','http://www.baidu ...

随机推荐

  1. shell生成rsync同步脚本

    test #!/bin/bash # # Rsync Install Script # Last Updated # ##### modify by Jinayf ##### ######手动修改以下 ...

  2. CS DevExpress程序启动(主窗体初始化优化)

    在进入程序主界面时,某些情况下主界面的初始化会消耗很长时间,例如一些复杂的业务系统,可能会从服务器上下载最新的数据进行展示等等,在这种情况下,我们可以采用一个进度界面展示“系统正在加载...”,等主界 ...

  3. SQL反模式学习笔记11 限定列的有效值

    目标:限定列的有效值,将一列的有效字段值约束在一个固定的集合中.类似于数据字典. 反模式:在列定义上指定可选值 1. 对某一列定义一个检查约束项,这个约束不允许往列中插入或者更新任何会导致约束失败的值 ...

  4. Servlet(六):Cookie

    Cookie 学习:问题: HTTP 协议是没有记忆功能的,一次请求结束后,相关数据会被销毁.如果第二次的请求需要使用相同的请求数据怎么办呢?难道是让用户再次请求书写吗?解决: 使用 Cookie 技 ...

  5. 理解上下文Context

    --摘自<Android进阶解密> 知识点: 1.Context的使用场景 1)使用Context调用方法,比如启动Activity.访问资源.调用系统级服务等 2)调用方法时传入Cont ...

  6. CLR Via 第一 章 知识点整理(2)程序集和CLR的启动

    这一节先简单的讨论一下程序集以及CLR的初始化 虽然对应的编译器会生成托管模块,但实际上CLR不与托管模块工作,编译器除了编译还有将生成的托管模块转换为程序集的功能,微软还提供了工具AL.exe(程序 ...

  7. 重温TCP

    先放张TCP头图片 一.TCP三次握手目的: 1.保证源主机确定目的主机在线,并可进行通信 2.让源主机检查它是否正在监听试图去连接的端口 3.允许源主机向接收者发送他的起始序列号,使得两主机可以将数 ...

  8. DWM1000 多个基站定位讨论 --[蓝点无限]

    该篇是之前<DWM1000 多个标签定位讨论 --[蓝点无限]>的续篇 多基站定位也是定位必然,因为有些稍微大一点的场合,或者多个区域(厂区不同房间)定位,往往4个基站会严重不足. DWM ...

  9. 我的 FPGA 学习历程(02)—— 实验:点亮 LED 灯

    关于 Quartus 的操作可以使用 Quartus 自带的帮助,帮助中带有全套的操作教程. 中文网络教程链接(链接至 altera中文官网,点击观看) Quartus II 软件设计系列:基础 Qu ...

  10. [jzoj]1115.【HNOI2008】GT考试

    Link https://jzoj.net/senior/#main/show/1115 Description 申准备报名参加GT考试,准考证号为n位数X1X2X3...Xn-1Xn(0<=X ...