简单将流量采集分为3个模块:
这部分比较简单,基本信息都在ngx.var ngx.ctx 等中都可以获取到:
ngx.status #状态码
ngx.var.scheme #协议
ngx.var.request_method # 请求方法
ngx.var.request_uri #请求uri
ngx.var.host #请求域名host
ngx.var.remote_addr #请求方IP
ngx.var.hostname #主机hostname
ngx.var.time_iso8601 #时间
ngx.var.server_port #服务端端口
ngx.req.get_headers() #获取请求头
ngx.req.get_body_data() #获取请求体
此处需注意get_headers 和 get_body_data 均需转换成dict形式。
响应体获取不是直接ngx.resp.get_headers()之类可以获取到的,需做一些处理:
ngx.ctx.buffered 即为响应体内容
需配合 header_filter_by_lua_file 引用
ngx.ctx.resp_headers 即为响应头信息
需配合 body_filter_by_lua_file 引用
以下为对内容进行简单拦截。
待更新高级用法。
403 错误是由两种原因引起的1、 网站没有设置默认页
2、权限不足
主要针对第二个原因分析解决办法
1、如果你是通过浏览器正常访问 当出现403时 尝试清空浏览器记录(cookie) 再次访问如果还是出现403 在尝试切换ip(代理或重拨宽带) 如果还是不能访问 那没办法 堆糖网在服务器端 根据你的mac地址或者其他的唯一标识限制了你的访问
有些网站为了防止其他人采集他们会限制单个用户在一定时间内访问的次数
2、如果你是通过程序进行采集 可以尝试伪造Referer、Host、User-Agent
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)