Request & Response

我们通过 HttpRequestHttpResponse 封装爬取的请求和对应的结果。

通常情况下, HttpRequest 一部分来自于spider中 start_requests() 方法生成的初始请求,另一部分来自于 parse() 方法解析页面得到的新的请求。 针对每个 HttpRequest ,如果请求成功xpaw会生成对应的 HttpResponse ,一般无需我们自己去构造 HttpResponse

Request API

class xpaw.http.HttpRequest(url, method="GET", body=None, params=None, headers=None, proxy=None, timeout=20, verify_ssl=False, allow_redirects=True, auth=None, proxy_auth=None, priority=None, dont_filter=False, callback=None, errback=None, meta=None, render=None)

用户通过此类封装HTTP请求。

Parameters:
  • url (str or URL) – URL地址
  • method (str) – HTTP method,GETPOST
  • body (bytes or str or dict) – 请求发送的数据。如果类型为 dict ,会默认为发送json格式的数据。
  • params (dict) – 请求参数
  • headers (dict or HttpHeaders) – HTTP headers
  • proxy (str) – 代理地址
  • timeout (float) – 请求超时时间
  • verify_ssl (bool) – 是否校验SSL
  • allow_redirects (bool) – 是否自动重定向
  • auth (tuple) – 认证信息,用户名和密码
  • proxy_auth (tuple) – 代理认证信息,用户名和密码
  • priority (float) – 请求的优先级
  • dont_filter (bool) – 是否经过去重过滤器
  • callback (str or method) – 请求成功时的回调函数,必须是spider的成员函数,也可以传递递函数名称
  • errback (str or method) – 请求失败时的回调函数,必须是spider的成员函数,也可以传递函数名称
  • meta (dict) – meta 属性的初始值,用于存储请求相关的元信息
  • render – 是否使用浏览器渲染
url

URL地址

method

HTTP method,GETPOST

body

请求发送的数据

headers

HTTP headers

proxy

代理地址

timeout

请求超时时间

verify_ssl

是否校验SSL

allow_redirects

是否自动重定向

auth

认证信息,用户名和密码

proxy_auth

代理认证信息,用户名和密码

priority

请求的优先级

dont_filter

是否经过去重过滤器。xpaw会根据此属性决定该请求是否经过去重过滤器,如果经过去重过滤器,被认定为重复的请求会被忽略。

callback

请求成功时的回调函数,必须是spider的成员函数,也可以传递递函数名称。

errback

请求失败时的回调函数,必须是spider的成员函数,也可以传递函数名称。

meta

只读属性,是一个 dict ,用于存储请求相关的元信息。 用户可将自定义的元信息存储在 meta 中。

render

是否使用浏览器渲染

copy()

复制request

replace(**kwargs)

复制request并替换部分属性

class xpaw.http.HttpHeaders

tornado.httputil.HTTPHeaders

Response API

class xpaw.http.HttpResponse(url, status, body=None, headers=None, request=None, encoding=None)
Parameters:
  • url (str) – URL地址
  • status (int) – HTTP状态码
  • body (bytes) – HTTP body
  • headers (dict or HttpHeaders) – HTTP headers
  • request (HttpRequest) – 爬虫请求
  • encoding (str) – HTTP body的编码格式
url

URL地址,如果是xpaw生成的response则类型为 URL

status

HTTP状态码

body

HTTP body

encoding

指定HTTP body的编码,如果没有指定,则会根据response的header和body进行自动推断。

text

只读属性,获取 body 对应的文本内容,在没有设置 encoding 的情况下会自动对编码进行推断。

headers

HTTP headers,如果是xpaw生成的response则类型为 HttpHeaders

request

对应的 HttpRequest

meta

只读属性,即为对应的 HttpRequestmeta 属性。

copy()

复制response。

replace(**kwargs)

复制response并替换部分属性。