目录
request对象
response对象
日志配置
request对象
from scrapy.http.request import Request
"""
class Request(object_ref):
def __init__(self, url, callback=None, method='GET', headers=None, body=None,
cookies=None, meta=None, encoding='utf-8', priority=0,
dont_filter=False, errback=None, flags=None, cb_kwargs=None):
scrapy.http.Request类是scrapy框架中request的基类。其参数如下:
url(str) - 此请求的URL
callback(callable)- 回调函数
method(str) - 此请求的HTTP方法。默认为'GET'。
meta(dict) - Request.meta属性的初始值。
body(str 或unicode) - 请求体。如果没有传参,默认为空字符串。
headers(dict) - 此请求的请求头。
cookies - 请求cookie。
encoding(str) - 此请求的编码(默认为'utf-8')此编码将用于对URL进行百分比编码并将body转换为str(如果给定unicode)。
priority(int) - 此请求的优先级(默认为0)。
dont_filter(boolean) - 表示调度程序不应过滤此请求。
errback(callable) - 在处理请求时引发任何异常时将调用的函数。
flags(list) - 发送给请求的标志,可用于日志记录或类似目的。
"""
# 构造请求
req = Request(url='http://www.baidu.com',headers={"name":'瑞'})
"""
请求对象的属性和方法:
url :包含此请求的URL的字符串。该属性是只读的。更改请求使用的URL replace()。
method :表示请求中的HTTP方法的字符串。
headers :类似字典的对象,包含请求头。
body :包含请求正文的str。该属性是只读的。更改请求使用的URL replace()。
meta :包含此请求的任意元数据的字典。
copy() :返回一个新的请求,改请求是此请求的副本。
replace :([ URL,method,headers,body,cookies,meta,encoding,dont_filter,callback,errback]) ,替换原来request对象中的参数并返回一个更新后的request对象
"""
print('返回请求的url:',req.url)
print('返回构造的请求头信息:',req.headers)
print('重构请求的url结果:',req.replace(url='https://baidu.com'))
response对象
from scrapy.http.response import Response,text
'''
class Response(object_ref):
def __init__(self, url, status=200, headers=None, body=b'', flags=None,
request=None, certificate=None, ip_address=None):
url(字符串) - 此响应的URL
status(整数) - 响应的HTTP状态。默认为200。
headers(dict) - 此响应的响应头。dict值可以是字符串(对于单值标头)或列表(对于多值标头)。
body(字节) - 响应主体。要将解码后的文本作为str(Python 2中的unicode)访问,您可以使用response.text来自编码感知的 Response子类,例如TextResponse。
flags(列表) - 是包含Response.flags属性初始值的列表 。如果给定,列表将被浅层复制。
request(Requestobject) - Response.request属性的初始值。这表示Request生成此响应的内容。
'''
# 构造响应对象
rps = Response(url='http://www.baidu.com',request=req)
"""
响应对象的方法和属性:
url、status、headers、body、request、meta、flags、copy()、
replace([ url,status,headers,body,request,flags,cls ] )、
urljoin(url )、follow(url)、
"""
print(rps.status)
日志配置
LOG_FILE = 'bd.log' # 日志输出文件,如果为None,就打印在控制台,项目中常用配置
LOG_ENABLED = True # 是否启用日志,(是否控制台输出日志),默认True
# LOG_ENCODING # 日期编码,默认utf-8
# LOG_LEVEL # 日志等级,默认debug,项目中常用配置
# LOG_FORMAT # 日志格式
# LOG_DATEFORMAT # 日志日期格式
LOG_STDOUT=True # 日志标准输出,默认False,如果True所有标准输出都将写入日志中
LOG_SHORT_NAMES = True # 短日志名,默认为False,如果True将不输出组件名