requests response,request和response用法

  requests response,request和response用法

  请求请求部分源码:

  # 部分代码

  类请求(object_ref):

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

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

  dont_filter=False,errback=None):

  自我. encoding=编码#这个必须先设置

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

  自我. set_url(网址)

  自我. set_body(正文)

  断言isinstance(priority,int),请求优先级不是整数:%r %优先级

  自我优先=优先权

  断言回调或非错误返回,"没有回调就不能使用错误返回"

  self.callback=回调

  self.errback=errback

  self.cookies=cookies或{}

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

  self.dont_filter=dont_filter

  自我. meta=dict(meta) if meta else None

  @属性

  定义元(自身):

  如果自我. meta是无:

  自我. meta={}

  回归自我. meta其中,比较常用的参数:

  网址:就是需要请求,并进行下一步处理的全球资源定位器(统一资源定位器)

  回拨:指定该请求返回的回应,由那个函数来处理

  方法:请求一般不需要指定,默认得到方法,可设置为获取,发布,上传等,且保证字符串大写

  标题:请求时,包含的头文件一般不需要内容一般如下:

  # 自己写过爬虫的肯定知道

  主持人:media.readthedocs.org

  用户代理:Mozilla/5.0(Windows NT 6.2;WOW64rv:33.0)壁虎/20100101火狐/33.0

  接受:text/css,*/*;q=0.1

  接受-语言:zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3

  接受编码:gzip,deflate

  推荐人:http://scrapy-CHS . readthedocs . org/zh _ CN/0.24/

  cookie:_ ga=ga 12 .1612161515145461

  连接:保持活动

  修改时间:2014年年8月25日星期一格林威治时间21时59分35秒

  缓存控制:最大年龄=0

  元:比较常用,在不同的请求之间传递数据使用的字典词典型

  request _ with _ cookies=Request(

  url=http://www.example.com ,

  cookies={ 货币:美元,国家: UY},

  meta={ dont _ merge _ cookies :True }

  )

  编码:使用默认的 utf-8 就行

  不要过滤:表明该请求不由调度器过滤这是当你想使用多次执行相同的请求,忽略重复的过滤器默认为错误

  错误回复:指定错误处理函数响应编号部分代码

  类响应(object_ref):

  def __init__(self,url,status=200,headers=None,body= ,flags=None,request=None):

  self.headers=头(头或{})

  self.status=int(status)

  自我. set_body(正文)

  自我. set_url(网址)

  自我请求=请求

  self.flags=[]如果旗帜是无其他列表(标志)

  @属性

  定义元(自身):

  尝试:

  返回self.request.meta

  除了属性错误:

  引发AttributeError(Response.meta不可用,此响应\

  不依赖于任何请求)大部分参数和上面的差不多:

  状态:响应码

  _set_body(body):响应体

  _set_url(url):响应全球资源定位器(统一资源定位器)

  自我请求=请求发送邮政请求可以使用产生刺痒感表单请求(网址,表单数据,回调)方法发送邮政请求如果希望程序执行一开始就发送邮政请求,可以重写蜘蛛;状似蜘蛛的物体;星形轮;十字叉;连接柄;十字头类的开始请求(自己)方法,并且不再调用开始网址里的网址类mySpider(scrapy .蜘蛛):

  # start _ URLs=[ http://www举例com/]

  定义开始请求(自身):

  URL= http://www人人网com/plogin“做”

  #表单请求是Scrapy发送邮政请求的方法

  产生刺痒感表单请求(

  url=url,

  formdata={ email : Mr _ Mao _ hacker @ 163 com ,密码: axxxxx

  xxe},

  callback=self.parse_page

  )

  def parse_page(self,response):

  #做点什么模拟登陆使用表单请求。发件人响应()方法模拟用户登录

  通常网站通过实现对某些表单字段(如数据或是登录界面中的认证令牌等)的预填充。

  使用Scrapy抓取网页时,如果想要预填充或重写像用户名、用户密码这些表单字段,可以使用表单请求。发件人响应()方法实现。

  下面是使用这种方法的爬虫例子:

  进口废品

  类登录思考者(scrapy .蜘蛛):

  name=example.com

  start _ URLs=[ http://www。举例。com/users/登录。PHP ]

  定义解析(自身,响应):

  返回好斗的.表单请求。发件人回应(

  回应,

  formdata={ 用户名:约翰,密码:秘密 },

  callback=self.after_login

  )

  def after_login(self,response):

  #继续之前检查登录是否成功

  如果响应中出现"身份验证失败",正文:

  self.log(登录失败,level=log .错误)

  返回

  #通过已验证的会话继续抓取.知乎爬虫案例参考:zhihuSpider.py爬虫代码

  #!/usr/bin/env python

  # -*-编码:utf-8 -*-

  从scrapy .蜘蛛导入爬行蜘蛛,规则

  从scrapy.selector导入选择器

  从scrapy.linkextractors导入链接提取器

  从废料导入请求,表单请求

  从zhihu.items导入ZhihuItem

  类(爬行蜘蛛) :

  name=胡志

  allowed _ domains=[ www。胡志。com ]

  start_urls=[

  http://www.zhihu.com的

  ]

  规则=(

  规则(链接提取器(allow=(/question/\ d # .*?,)),callback=parse_page ,follow=True),

  规则(链接提取器(allow=(/question/\ d ,)),回调=parse_page ,follow=True),

  )

  标题={

  接受: */* ,

  接受-语言:“恩——我们,恩;q=0.8,zh-TW;q=0.6,zh;q=0.4 ,

  连接:保持活动,

  content-Type ":" application/x-www-form-urlencoded;字符集=UTF-8 ,

  用户代理:‘Mozilla/5.0(麦金塔;英特尔Mac OS X 10 _ 11 _ 5)苹果WebKit/537.36(KHTML像壁虎)Chrome/54。0 .2125 .111 Safari/537.36 ,

  Referer: http://www.zhihu.com/

  }

  #重写了爬虫类的方法,实现了自定义请求,运行成功后会调用回收回调函数

  定义开始请求(自身):

  返回[请求( https://www。胡志。 meta={cookiejar : 1},callback=self.post_login)]

  def post_login(自身,响应):

  打印"准备登录"

  #下面这句话用于抓取请求网页后返回网页中的_xsrf字段的文字,用于成功提交表单

  xsrf=响应。XPath(//input[@ name= _ xsrf ]/@ value ).提取()[0]

  打印跨站请求伪造

  #FormRequeset.from_response是Scrapy提供的一个函数,用于邮政表单

  #登陆成功后,会调用登录后回调函数

  返回[表单请求。from _ response(response,# http://www。胡志。 com/登录,

  meta={ cookiejar :响应。meta[ cookiejar ]},

  headers=self.headers按井号键注意此处的头球

  表单数据={

  _xsrf: xsrf,

  邮箱:“123456@qq.com”,

  密码: 123456

  },

  callback=self.after_login,

  dont_filter=True

  )]

  def after_login(self,response):

  对于self.start_urls中的网址:

  让出自我。制作请求来源URL(URL)

  def parse_page(self,response):

  问题=选择器(响应)

  item=ZhihuItem()

  item[url]=response.url

  项目[名称]=问题。XPath(//span[@]/text()).提取()

  打印项目[名称]

  item[ title ]=问题。XPath(//H2[@]/text()).提取()

  项目[描述]=问题。XPath(//div[@]/text()).提取()

  item[答案]=问题。XPath(//div[@]/text()).提取()

  返回项目项目类设置

  从scrapy .项目导入项目,字段

  类别ZhihuItem(项目):

  #在此定义项目的字段,如下所示:

  # name=scrapy .字段()

  url=Field() #保存抓取问题的全球资源定位器(统一资源定位器)

  title=Field() #抓取问题的标题

  描述=Field() #抓取问题的描述

  答案=Field() #抓取问题的答案

  name=Field() #个人用户的名称setting.py设置抓取间隔

  BOT_NAME=胡志

  蜘蛛模块=[胡志。蜘蛛的]

  胡志新闻。蜘蛛的

  下载_延迟=0.25 #设置下载间隔为250毫秒

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

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