scrapy中的headers,Request,response

Ramya ·
更新时间:2024-09-20
· 791 次阅读

文章目录headersRequestresponse headers

为了让程序请求模仿的更像浏览器,需要在headers请求头上添加一些参数

headers请求头的部分重要参数:

Host (主机和端口号) Connection (链接类型) Upgrade-Insecure-Requests (升级为HTTPS请求) User-Agent (浏览器名称) Accept (传输文件类型) Referer (页面跳转处) Accept-Encoding(文件编解码格式) Cookie (Cookie) x-requested-with :XMLHttpRequest (是Ajax 异步请求) Request

scrapy的Request对象具有的实例属性

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):

这些参数为None时(创建Request对象未传入),会使用配置中默认的参数

获取请求头和响应头的参数(参数名不确定时可以打开浏览器开发者工具查看)

# 获取请求头 response.request.headers.getlist(参数名) # 获取响应头 response.headers.getlist(参数名)

请求一个url,创建了一个Request对象

scrapy.Request( url, callback=xxx, headers=xxx )

headers为None时,采用默认的请求头信息。默认的请求头信息在配置文件中(可以在这里打开注释修改请求头,也可以在创建Request对象时传入headers,形式为键值对,但是headers不能定义cookie)

#DEFAULT_REQUEST_HEADERS = { # 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', # 'Accept-Language': 'en', #} #在请求中传入headers scrapy.Request( self.start_urls[0], callback=self.parse, headers={xx:xx,xx:xx} # 这些参数会和默认请求头的参数进行合并,然后请求时带上合并后的请求头 ) response response.url:当前响应的url地址 response.request.url:当前响应对应的请求的url地址 response.headers:响应头 response.body:响应体,也就是html代码,默认是byte类型 response.request.headers:当前响应的请求头
作者:虐猫人薛定谔i



scrapy request response

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章