1< scrapy的安装


命令行安装
pip install scrapy
<常见错误是缺少 wim32api
安装win32api
pip install pywin32
<还有就是twisted没有安装
到链接找到对应的版本下载安装
http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted

命令行打开输入pip install 把文件拖进来就OK了

2<scrapy基础


scrapy优点:

  • 提供了内置的HTTP缓存,以加速本地开发

  • 童工了自动节流调节机制,而且具有遵守robots.txt的内置的能力

  • 可以定义爬行深度的限制,以避免爬虫进入死循环链接

  • 会自动保留会话

  • 执行自动HTTP基本认证,不需要明确保存状态

  • 可以自动填写登入表单

  • scrapy有一个内置的中间件,可以自动设置请求中的引用头referrer

  • 支持通过3XX响应重定向,也可以通过HTML元刷新

  • 避免被网站使用的<noscript>meta重定向困住,以检测没有JS支持的页面

  • 默认使用CSS选择器或者Xpath编写解析器

  • 可以通过Splash或任何其他技术Selenium呈现JavaScript页面

  • 拥有强的社区支持和丰富的插件和扩展来扩展其功能

  • 提供了通用的蜘蛛来抓取常见的格式,站点地图CSV和XML

  • 内置支持以多种格式(JSON,CSV,XML,JSON-lines)导出收集的数据并储存在多个后端FTP S3 本地文件系统中

Scrapy 架构

Scrapy 执行过程

1 引擎打开一个网站 open a domain 找到处理该网站的Spider并向该Spider请求第一个爬取的URL

2 引擎从Spider中获取第一个要爬取的URL并在调度器Scheduler中以Request调度

3 引擎向调度器请求下一个要爬取的URL

4 调度器返回下一个要爬取的URL给引擎,引擎将URL通过下载中间件请求request方向转发给下载器

5 一旦页面下载完毕,下载器生成一个该页面的Response,并将其通过下载中间件(返回Response方向)发送给引擎

6 引擎从下在其中接收Response并通过Spider中间件(输入方向)发送给Spider处理

7 Spider处理Response并返回爬取到的Item及(跟进的新的Request给引擎

8 引擎将(Spider返回的)爬取到的Item给Item Pipeline,将Spider返回的Request给调度器

9 从第2步 重复知道调度器中没有更多的Request,引擎关闭对该网站的执行进程

3<scrapy使用


scarpy 使用命令操作

创建一个scrapy工程

scrapy startproject <your-project-name>
# 例如 创建一个名为first_spider工程
scrapy startproject first_spider

所在的目录就创建了一个first_spider的目录

我们看一下这个目录的结构

  • __init__.py   #包定义

  • items.py       #模型定义

  • pipeline.py        #管道定义

  • settings.py        #配置文件

  • spiders              #蜘蛛文件夹

  • __init__.py    #默认的蜘蛛代码文件

  • scrapy,py          #Scrapy的运行配置文件

Scrapy爬虫框架 基础的更多相关文章

  1. Python之Scrapy爬虫框架安装及简单使用

    题记:早已听闻python爬虫框架的大名.近些天学习了下其中的Scrapy爬虫框架,将自己理解的跟大家分享.有表述不当之处,望大神们斧正. 一.初窥Scrapy Scrapy是一个为了爬取网站数据,提 ...

  2. scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250

    scrapy爬虫框架教程(二)-- 爬取豆瓣电影TOP250 前言 经过上一篇教程我们已经大致了解了Scrapy的基本情况,并写了一个简单的小demo.这次我会以爬取豆瓣电影TOP250为例进一步为大 ...

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

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

  4. scrapy爬虫框架学习笔记(一)

    scrapy爬虫框架学习笔记(一) 1.安装scrapy pip install scrapy 2.新建工程: (1)打开命令行模式 (2)进入要新建工程的目录 (3)运行命令: scrapy sta ...

  5. Scrapy爬虫框架中的两个流程

    下面对比了Scrapy爬虫框架中的两个流程—— ① Scrapy框架的基本运作流程:② Spider或其子类的几个方法的执行流程. 这两个流程是互相联系的,可对比学习. 1 ● Scrapy框架的基本 ...

  6. Python爬虫教程-31-创建 Scrapy 爬虫框架项目

    本篇是介绍在 Anaconda 环境下,创建 Scrapy 爬虫框架项目的步骤,且介绍比较详细 Python爬虫教程-31-创建 Scrapy 爬虫框架项目 首先说一下,本篇是在 Anaconda 环 ...

  7. Python-S9-Day126——Scrapy爬虫框架

    01 今日内容概要 02 内容回顾和补充:scrapy 03 内容回顾和补充:网络和并发编程 04 Scrapy爬虫框架:pipeline做持久化(一) 05 Scrapy爬虫框架:pipeline做 ...

  8. 第十七节:Scrapy爬虫框架之item.py文件以及spider中使用item

    Scrapy原理图: item位于原理图的最左边 item.py文件是报存爬取数据的容器,他使用的方法和字典很相似,但是相比字典item多了额外的保护机制,可以避免拼写错误或者定义错误. 1.创建it ...

  9. 手把手教你如何新建scrapy爬虫框架的第一个项目(上)

    前几天给大家分享了如何在Windows下创建网络爬虫虚拟环境及如何安装Scrapy,还有Scrapy安装过程中常见的问题总结及其对应的解决方法,感兴趣的小伙伴可以戳链接进去查看.关于Scrapy的介绍 ...

随机推荐

  1. nodejs 运行

    运行 Node.js 程序的基本方法就是执行 node script.js,其中 script.js①是脚本的文件名. 除了直接运行脚本文件外,node --help 显示的使用方法中说明了另一种输出 ...

  2. 深入学习理解java-ThreadLocal

    导读 首先,ThreadLocal 不是用来解决共享对象的多线程訪问问题的,普通情况下,通过ThreadLocal.set() 到线程中的对象是该线程自己使用的对象,其它线程是不须要訪问的,也訪问不到 ...

  3. tomcat连接mysql的3个问题解决

    转载请标明出处: 本文出自:[ouyida3的博客] 1.BasicDataSourceFactory Caused by: java.lang.ClassNotFoundException: org ...

  4. SQL SERVER:一条SQL语句插入多条记录等

    在学习排名第二的mySql过程中,发现它的插入语句可以这样写: use test; create table fruits( fid char(10) not null ,s_id int null ...

  5. java使用poi读取doc和docx文件(maven自动导入依赖包)

    java使用poi读取doc和docx文件(maven自动导入依赖包) 于是在网上搜寻了一阵之后才发现原来doc文档和excel一样不能用普通的io流的方法来读取,而是也需要用poi,于是进行了一番尝 ...

  6. java使用poi读取word(简单,简约,直观)

    java使用poi读取word(简单,简约,直观) 说明 其实poi的官网上面都是有接口和样例的,只是都是英文 例如网址:http://poi.apache.org/spreadsheet/quick ...

  7. C#中的文件导出大全

    s 得到 radiobuttonlist和CheckBoxList 选中值 得到radiobuttonlist 选中值:var CheckBoxList=document.all.optButtonL ...

  8. Coursera Algorithms Programming Assignment 4: 8 Puzzle (100分)

    题目原文:http://coursera.cs.princeton.edu/algs4/assignments/8puzzle.html 题目要求:设计一个程序解决8 puzzle问题以及该问题的推广 ...

  9. PCB InCAM 获取 JOB STEP 实现外挂脚本调试功能实现

    PCB CAM自动化基于Incam 打造,在测试时经常遇到调试障碍,每次自行对功能测试时,生成了exe脚本后,再到Incam里面运行,发现问题,再回来修改代码,非常不爽, 参考Genesis调试运行模 ...

  10. codevs1163访问艺术馆(树形dp)

    1163 访问艺术馆  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 大师 Master   题目描述 Description 皮尔是一个出了名的盗画者,他经过数月的精心准备, ...