scrapy.request(),python requests response

  scrapy.request(),python requests response

  介绍了基于python的scrapy框架中请求对象和响应对象的引入。Request对象主要用于请求数据,当爬取一页数据,再次发送请求时调用。Response对象一般是scrapy自动为你构建的,开发者不需要关心如何创建Response对象。下面我们来详细了解一下。

  00-1010 I,请求对象II,发送POST请求III,响应对象

  

目录

  请求对象主要用于请求数据。当对一页数据进行爬网并再次发送请求时,会调用该函数。其源代码类的位置如下

  下图所示:

  这里给出其的源码,该方法有很多参数:

  类别请求(object_ref):

  def __init__(self,url,callback=None,method=GET ,headers=None,body=None,

  cookies=无,meta=无,编码=utf-8 ,优先级=0,

  dont_filter=False,errback=None,flags=None,cb_kwargs=None):

  自我。_encoding=encoding #这个必须先设置

  self.method=str(方法)。上部()

  自我。_set_url(url)

  自我。_set_body(body)

  如果不是isinstance(priority,int):

  raise TypeError(f 请求优先级不是整数: {priority!r} )

  自我优先=优先权

  如果回调不是无且不可调用(回调):

  raise TypeError(fcallback必须是可调用的,得到了{type(callback)。__name__} )

  如果errback不是None且不可调用(errback):

  引发TypeError(ferrback必须是可调用的,得到了{type(errback)。__name__} )

  self.callback=回调

  self.errback=errback

  self.cookies=cookies或{}

  self.headers=Headers(头或{},编码=编码)

  self.dont_filter=dont_filter

  自我。_meta=dict(meta) if meta else None

  自我。_ CB _ kwargs=dict(CB _ kwargs)if CB _ kwargs else None

  self.flags=[]如果flags是None else list(flags)

  这里对各个做一个简单的解释:

  Url:请求对象发送请求的url。Callback:下载器下载相应数据后执行的回调函数。方法:请求的方法,默认为GET方法,可以设置为其他方法。Headers:对于某些固定的设置,可以在settings.py中指定请求头;对于不固定的设置,可以在发送请求时指定请求头。主体:请求主体,请求参数被传入。Meta:常用。用于在不同的请求之间传输数据。编码:编码。默认是utf-8,就用默认的。Dont_filter:表示不被调度器过滤,经常在执行重复请求时使用。Errback:出错的是已经执行的函数。

  

一、Request对象

  有时候我们在请求数据的时候想要发送post请求,就需要使用Request的子类FormRequest来实现。如果要在爬虫的开头发送POST请求,需要重写爬虫中的start_requests(self)方法,不要调用start_urls中的url。

  

二、发送POST请求

  响应对象一般是scrapy自动为你构建的,开发者不需要关心如何创建响应对象。而是如何使用。响应对象有许多可用于提取数据的属性。

  主要有以下属性:

  Meta:从其他请求传递过来的Meta属性可以用来保持多个请求之间的数据连接。Encoding:返回字符串编码和解码的格式。Text:将返回的数据作为unicode字符串返回给body:将返回的数据作为字节字符串返回。Xpath: xpath选择器。关于基于python的scrapy框架中请求对象和响应对象的介绍,本文到此为止。有关请求对象和响应对象的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: