美文网首页
Scrapy学习1

Scrapy学习1

作者: 我是一头猪123 | 来源:发表于2018-11-07 14:43 被阅读0次

一 Request对象

构造函数Request(url[, callback, method='GET', headers, body, cookies,
meta,encoding='utf-8', priority=0, dont_filter=False, errback])
(Ⅰ)url(必选) 请求页面的url地址,bytes或str类型,如'http://www.python.org/doc'。
(Ⅱ)callback 页面解析函数, Callable类型,Request对象请求的页面下载完成后,由该参数指定的页面解析函数被调用。如果未传递该参数,默认调用Spider的parse方法。
(Ⅲ)method HTTP请求的方法,默认为'GET'。
(Ⅳ)headers HTTP请求的头部字典,dict类型,例如{'Accept': 'text/html', 'User-Agent':Mozilla/5.0'}。如果其中某项的值为None,就表示不发送该项HTTP头部,例如{'Cookie': None},禁止发送Cookie。
(Ⅴ)body HTTP请求的正文,bytes或str类型。
(Ⅵ)cookies Cookie信息字典,dict类型,例如{'currency': 'USD', 'country': 'UY'}。
(Ⅶ)meta Request的元数据字典,dict类型,用于给框架中其他组件传递信息,比如中间件Item Pipeline。其他组件可以使用Request对象的meta属性访问该元数据字典(request.meta),也用于给响应处理函数传递信息,详见Response的meta属性。
(Ⅷ)encoding url和body参数的编码默认为'utf-8'。如果传入的url或body参数是str类型,就使用该参数进行编码。
(Ⅸ)priority 请求的优先级默认值为0,优先级高的请求优先下载。
(Ⅹ)dont_filter 默认情况下(dont_filter=False),对同一个url地址多次提交下载请求,后面的请求会被去重过滤器过滤(避免重复下载)。如果将该参数置为True,可以使请求避免被过滤,强制下载。例如,在多次爬取一个内容随时间而变化的页面时(每次使用相同的url),可以将该参数置为True
(XI)errback 请求出现异常或者出现HTTP错误时(如404页面不存在)的回调函数。
除了url其他参数都有默认值可以根据需求进行设置

二response对象

HtmlResponse 对象的属性及方法
(Ⅰ)url HTTP响应的url地址,str类型。
(Ⅱ)status HTTP响应的状态码,int类型,例如200,404。
(Ⅲ)headers HTTP响应的头头部,类字典类型,可以调用get或getlist方法对其进行访问,例如:response.headers.get('Content-Type') /response.headers.getlist('Set-Cookie')
(Ⅳ)body HTTP响应正文,bytes类型。
(Ⅴ)text 文本形式的HTTP响应正文,str类型,它是由response.body使用response.encoding解码得到的,即reponse.text = response.body.decode(response.encoding)
(Ⅵ)encoding HTTP响应正文的编码,它的值可能是从HTTP响应头部或正文中解析出来的。
(Ⅶ)request 产生该HTTP响应的Request对象。
(Ⅷ)meta 即response.request.meta,在构造Request对象时,可将要传递给响应处理函数的信息通过meta参数传入;响应处理函数处理响应时,通过response.meta将信息取出。
(Ⅸ)selector Selector对象用于在Response中提取数据
(Ⅹ)xpath(query) 使用XPath选择器在Response中提取数据,实际上它response.selector.xpath方法的快捷方式
(XI)css(query) 使用CSS选择器在Response中提取数据,实际上它是response.selector.css方法的快捷方式(选择器相关话题在后面章节详细讲解)。
(XⅡ)urljoin(url)用于构造绝对url。当传入的url参数是一个相对地址时,根据response.url计算出相应的绝对url。例如,response.url为http://www.example.com/a,url为b/index.html,调用response.urljoin(url)的结果为http://www.example.com/a/b/index.html。
常用的方法
xpath(query)
css(query)
urljoin(url)
前两个方法用于提取数据,后一个方法用于构造绝对url。

三实现spider

①集成scrapy.Spider
import scrapy
class BooksSpider(scrapy.Spider)
②为Spider命名
name = "books"
③设定爬虫起始点
start_urls = ['http://books.toscrape.com/']
④页面解析

代码


相关文章

  • scrapy学习笔记(有示例版)

    scrapy学习笔记(有示例版) 我的博客 scrapy学习笔记1.使用scrapy1.1创建工程1.2创建爬虫模...

  • Scrapy 学习1

    优点: 1. 建立在twisted这个异步框架上的,因此非常高效,也支持异步 就像给100个人打电话时,要一个个打...

  • Scrapy学习1

    一 Request对象 ①构造函数Request(url[, callback, method='GET', he...

  • 2.Scrapy-Item

    Scrapy 文章仅供学习,如有错误,欢迎指出 1.创建项目 scrapy startproject tuto...

  • Scrapy 入门学习 1 & 初识Scrapy

    引子 最近工作上需要对Scrapy进行二次开发,为此我又好好的复习了一下Scrapy相关的知识,并整理了如下内容 ...

  • 一篇文章教会你理解Scrapy网络爬虫框架的工作原理和数据采集过

    今天小编给大家详细的讲解一下Scrapy爬虫框架,希望对大家的学习有帮助。 1、Scrapy爬虫框架 Scrapy...

  • 2018-08-12

    Scrapy学习 《精通Scrapy网络爬虫》第八章--仅作为本人学习笔记,如有侵权,请私信我删除 1、项目需求 ...

  • scrapy

    scrapy学习 一、scrapy框架介绍 Scrapy Engine(引擎): 负责Spider、ItemPip...

  • Scrapy学习笔记(1)

    要学习自然语言处理,必须要有的就是语料库(corpus),除了公开的语料库以外,如果要对特定的内容进行分析,就需要...

  • Scrapy框架学习1

    scrapy爬虫框架结构 爬虫框架 爬虫框架是实现爬虫功能的一个软件结构和功能组件的集合 爬虫框架是一个半成品...

网友评论

      本文标题:Scrapy学习1

      本文链接:https://www.haomeiwen.com/subject/qrfkwxtx.html