在《开源python网络爬虫框架Scrapy介绍》一文中介绍了Scrapy这个Python爬虫框架。Scrapy是一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛,可以用于数据挖掘、监测和自动化测试。Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider、sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。

下面介绍Scrapy在windows下的安装:

首先下载windows版:Scrapy-0.15.0.2842.win32.exe,直接安装。

安装之后不能直接运行scrapy提供的test,会提示错误,因为scrapy基于其他一些python库,需要把这些库都安装才行。

Twisted:Twisted Matrix 是一种用来进行网络服务和应用程序编程的纯 Python 框架,虽然 Twisted Matrix 中有大量松散耦合的模块化组件,但该框架的中心概念还是非阻塞异步服务器这一思想。Twisted的安装也非常简单,在这里直接下载windows平台下的相应版本即可:http://pypi.python.org/packages/2.7/T/Twisted/,

zope.interface:在这里下载http://pypi.python.org/pypi/zope.interface/3.8.0#downloads。zope.interface没有提供windows平台下的exe版,只提供了windows平台下的egg包。

ez_setup:下载http://pypi.python.org/pypi/ez_setup,安装。将egg文件放置在{python安装目录}\Scripts目录下。

打开CMD并切换至scripts目录,easy_install zope.interface-3.8.0-py2.6-win32.egg安装。

w3lib:zope.interface问题解决之后还会提示缺少w3lib,下载http://pypi.python.org/pypi/w3lib后安装即可

libxml2:使用scrapy的html解析功能时,会提示你缺少libxml2,所以我们先把这个也装上,地址http://xmlsoft.org/sources/win32/python/,下载相应的版本即可。

至此就可以使用Scrapy玩spider了,大家可以根据文档写一个简单的爬虫试试,实际上使用scrapy做一个简易的爬虫甚至只需要几行代码就可以了,以后有空再详细说说使用方法,本文不做更多描述。

所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的HTML数据。不过由于一个网站的网页很多,而我们又不可能事先知道所有网页的URL地址,所以,如何保证我们抓取到了网站的所有HTML页面就是一个有待考究的问题了。

一般的方法是,定义一个入口页面,然后一般一个页面会有其他页面的URL,于是从当前页面获取到这些URL加入到爬虫的抓取队列中,然后进入到新新页面后再递归的进行上述的操作,其实说来就跟深度遍历或广度遍历一样。

上面介绍的只是爬虫的一些概念而非搜索引擎,实际上搜索引擎的话其系统是相当复杂的,爬虫只是搜索引擎的一个子系统而已。下面介绍一个开源的爬虫框架Scrapy。

Scrapy是一个用 Python 写的 Crawler Framework ,简单轻巧,并且非常方便,并且官网上说已经在实际生产中在使用了,不过现在还没有 Release 版本,可以直接使用他们的 Mercurial 仓库里抓取源码进行安装。

Scrapy 使用 Twisted 这个异步网络库来处理网络通讯,架构清晰,并且包含了各种中间件接口,可以灵活的完成各种需求。整体架构如下图所示:

绿线是数据流向,首先从初始 URL 开始,Scheduler 会将其交给 Downloader 进行下载,下载之后会交给 Spider 进行分析,Spider 分析出来的结果有两种:一种是需要进一步抓取的链接,例如之前分析的“下一页”的链接,这些东西会被传回 Scheduler ;另一种是需要保存的数据,它们则被送到 Item Pipeline 那里,那是对数据进行后期处理(详细分析、过滤、存储等)的地方。另外,在数据流动的通道里还可以安装各种中间件,进行必要的处理。

scapy安装and简介相关推荐

  1. linux查找influx的安装位置,InfluxDB学习之InfluxDB的安装和简介 | Linux大学

    最近用到了 InfluxDB,在此记录下学习过程,同时也希望能够帮助到其他学习的同学. 本文主要介绍InfluxDB的功能特点以及influxDB的安装过程.更多InfluxDB详细教程请看:Infl ...

  2. Postman和postwoman安装及简介

    Postman和postwoman安装及简介 在 Web 项目中,大部分采用的都是前后端分离的开发模式,前后端通过接口来进行数据交互.后端实现的接口非常多,每个接口都要通过测试来保证功能正常. 项目是 ...

  3. Win10安装SQlite3简介

    Win10安装SQlite3简介 下载对应windows安装包:https://www.sqlite.org/download.html 下载到本地之后,新建一个sqlite文件夹,将下载文件解压缩, ...

  4. K8S多种的安装方式简介(待完善补充)

    原文链接:海鸥81-K8S多种安装方式简介 目前安装Kubernetes的方式多样,主要是minikube kubeadm,kops,手动部署(二进制),Rancher,Kubespray. 1.mi ...

  5. Ubuntu 16.04 下pkg-config的安装与简介

    Ubuntu 16.04 下pkg-config的安装与简介 原创 BRUCE_WUANG 最后发布于2019-08-19 11:33:06 阅读数 2957 收藏 展开 1. 什么是pkg-conf ...

  6. Ubuntu 16.04下安装ffmpeg和opencv的安装与简介

    文章目录 ffmpeg简介 资料准备 0. 检查依赖yasm与gcc,以及pkg-config 1. 下载ffmpeg 2. 解压进入解压目录 3. 准备执行编译配置操作,执行如下操作 4. 编译与安 ...

  7. python3安装教程-Python3+Scapy安装使用教程

    一.说明 之前写DoS程序的时候(见"拒绝服务(DoS)理解.防御与实现"),数据包完全是自己构造的,这其中的难处一是要清楚各层协议的字段.字段长度.字段是数值还是字符.大头还是小 ...

  8. 使用Codeception进行Yii2的单元测试(一)安装以及简介篇

    一.简介 作为php工程师,我们很可能遇到一些有必要的进行单元测试的场景.本系列文章就来介绍下,在Yii2框架下,如何使用Codeception进行单元测试.本篇就首先介绍Yii2,以及Codecep ...

  9. 多个ip对应的是同一个mac_Python3+Scapy安装使用 + 查询本机对应网卡,IP,MAC代码...

    安装 直接使用pip安装 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple scapy 一些扩展功能,可选: pip install -i ...

最新文章

  1. pgsql数据库默认配置事务类型_PostgreSQL基础教程之:初始化配置
  2. 那些年,我们追过的java8
  3. 华北理工大学815c语言程序设计,2017年华北理工大学信息工程学院815C程序设计考研冲刺密押题...
  4. java nginx 例子_Nginx配置日志
  5. osgi框架 android,基于OSGi的Android应用模块动态加载框架设计与实现
  6. (10)System Verilog 虚方法
  7. Angular之双向数据绑定(上)
  8. PostgreSQL学习手册(十一) 数据库管理
  9. 在做开关电路时,三极管限流电阻该如何选择?
  10. php数字月份转英文,php如何实现月份转英文
  11. python3魔法方法_Python3 魔法方法详解
  12. 如何检索论文被引用情况
  13. 股票分红信息 股票历次分红查询
  14. 2021-07-27 百度飞桨AI达人创造营手账
  15. 网络爬虫讲解(附java实现的实例)
  16. Tableau 读书笔记
  17. 微信中的黑科技你知道吗?
  18. 禅意设计:网络简洁设计的缘起和未来
  19. 教python的app_Python教学
  20. 面试必问——jvm原理及优化(包括GC)

热门文章

  1. 【数据平台】sklearn库特征工程之特征选择和降维
  2. Batch Norm、Layer Norm、Instance Norm、Group Norm、Switchable Norm总结
  3. mopso算法代码程序_JAVA程序员的必杀技,面试中常考的8个经典算法题,过程精妙,代码精炼...
  4. 取消Ajax请求 || Ajax重复请求问题
  5. MyBatis的入门知识
  6. Jenkins 管理界面里提示“反向代理设置有误“的问题解决办法
  7. CTFshow 命令执行 web119
  8. conv--向量的卷积和多项式乘法
  9. 矩阵的对角化(Diagonalizing a Matrix )
  10. susan算子的运用