scrapy入门经典.pptx_第1页
scrapy入门经典.pptx_第2页
scrapy入门经典.pptx_第3页
scrapy入门经典.pptx_第4页
scrapy入门经典.pptx_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,Scrapy入门,scrapy简介,Scrapy,Python开发的一个快速,灵活,可扩展性高的web抓取框架,用于抓取web站点并从页面中提取结构化的数据。Scrapy可以用于数据挖掘、监测和自动化测试。 Scrapy吸引人的地方在于它是一个框架,任何人都可以根据需求方便的修改。它也提供了多种类型爬虫的基类,如BaseSpider爬虫等,继承这些基类可以轻松实现自己的爬虫。,内容,安装scrapy 创建一个Scrapy项目 定义提取的Item 编写爬取网站的 spider 并提取 Item 编写 Item Pipeline 来存储提取到的Item(即数据),安装,下列的安装步骤假定您已经安装好下列程序: Python 2.7 / Python Package: pip and setuptools. 现在 pip 依赖 setuptools ,如果未安装,则会自动安装setuptools 。 https:/pip.pypa.io/en/latest/installing/ lxml. 大多数Linux发行版自带了lxml。如果缺失,请查看http:/lxml.de/installation.html OpenSSL. 除了Windows之外的系统都已经提供。,您可以使用pip来安装Scrapy(推荐使用pip来安装Python package). 使用pip安装: pip install Scrapy,创建项目,在开始爬取之前,您必须创建一个新的Scrapy项目。 进入您打算存储代码的目录中,运行下列命令: scrapy startproject tutorial 该命令将会创建包含下列内容的 tutorial 目录:,这些文件分别是: scrapy.cfg: 项目的配置文件 tutorial/: 该项目的python模块。之后您将在此加入代码。 tutorial/items.py: 项目中的item文件. tutorial/pipelines.py: 项目中的pipelines文件. tutorial/settings.py: 项目的设置文件. tutorial/spiders/: 放置spider代码的目录.,定义Item,Item 是保存爬取到的数据的容器;其使用方法和python字典类似, 并且提供了额外保护机制来避免拼写错误导致的未定义字段错误。 类似在ORM中做的一样,您可以通过创建一个 scrapy.Item 类, 并且定义类型为 scrapy.Field 的类属性来定义一个Item。,我们需要从dmoz中获取名字,url,以及网站的描述。 对此,在item中定义相应的字段。编辑 tutorial 目录中的 items.py 文件:,编写第一个爬虫(Spider),Spider是用户编写用于从单个网站(或者一些网站)爬取数据的类。 其包含了一个用于下载的初始URL,如何跟进网页中的链接以及如何分析页面中的内容, 提取生成 item 的方法。,为了创建一个Spider,您必须继承 scrapy.Spider 类, 且定义以下三个属性: name: 用于区别Spider。 该名字必须是唯一的,您不可以为不同的Spider设定相同的名字。 start_urls: 包含了Spider在启动时进行爬取的url列表。 因此,第一个被获取到的页面将是其中之一。 后续的URL则从初始的URL获取到的数据中提取。 parse() 是spider的一个方法。 被调用时,每个初始URL完成下载后生成的 Response 对象将会作为唯一的参数传递给该函数。 该方法负责解析返回的数据(response data),提取数据(生成item)以及生成需要进一步处理的URL的 Request 对象。,以下为我们的第一个Spider代码,保存在 tutorial/spiders 目录下的 dmoz_spider.py 文件中:,爬取,进入项目的根目录,执行下列命令启动spider: scrapy crawl dmoz crawl dmoz 启动用于爬取 的spider,您将得到类似的输出:,提取Item,Selectors选择器简介 从网页中提取数据有很多方法。Scrapy使用了一种基于 XPath 和 CSS 表达式机制: Scrapy Selectors 。 这里给出XPath表达式的例子及对应的含义: /html/head/title: 选择HTML文档中 标签内的 元素 /html/head/title/text(): 选择上面提到的 元素的文字 /td: 选择所有的 元素 /divclass=“mine“: 选择所有具有 class=“mine“ 属性的 div 元素,提取数据,现在,我们来尝试从这些页面中提取些有用的数据。,在我们的spider中加入这段代码:,使用item,Item 对象是自

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论