最常见的HTTP Headers

在网络抓取领域,大家经常会讨论下面2个问题:

1.如何避免被目标服务器封锁?

2.如何提高检索数据的质量?

在现有阶段,有效的技术可以防止被目标网站封锁,例如代理和实用的IP地址轮换。

然而,还有一项技术也能发挥类似作用,却经常被忽略,那就是使用和优化HTTP Headers。这种方法会大大减少您的网络爬虫被各种数据源封锁的可能性,并确保检索到高质量的数据。

如果您完全不了解HTTP Header或了解较少,不用担心,本文会向您介绍什么是HTTP Header以及在网络抓取过程中它们的作用。

网页抓取5大常用HTTP Headers

在下文中,我们将重点讲解需要使用和优化的5个最常见的HTTP Header,并说明为什么需要使用它们。

以下是这5个HTTP Header的列表:

Header

示例

HTTP Header User-Agent

Mozilla/5.0(X11; Linux x86_64; rv:12.0) Gecko/20100101 Firefox/12.0

HTTP Header Accept-Language

en-US

HTTP Header Accept-Encoding

gzip,deflate

HTTP Header Accept

text/html

HTTP Header Referer

http://www.google.com/

Header使客户端和服务器都能够在请求或响应中传输更多详细信息。

01 HTTP Header User-Agent

User-Agent Header传递的信息包括应用类型,操作系统,软件和版本信息,并允许数据目标来决定使用何种类型的HTML布局来响应,手机、平板电脑或PC均可显示不同的HTML布局。

User-Agent

Mozilla/5.0(Macintosh; Intel Mac OS X 10_14_5)

AppleWebKit/605.1.15 (KHTML, like Gecko)

Version/12.1.1 Safari/605.1.15

网络服务器经常会验证User-Agent Header,这是网站服务器的第一重保障,这个步骤可以让数据源识别出可疑请求。例如,网络抓取时,大量请求传输到网络服务器,如果User-Agent Header相同,那么服务器端就会判定是爬虫行为。因此,有经验的网页抓取者会把User-Agent Header修改成不同的字符串,从而让服务器识别成是多个自然用户在发出请求。

因此,当涉及到User-Agent Header时,需要经常更改此Header的信息,这样就不容易因为这个Header而被封锁。

02 HTTP Header Accept-Language

Accept-Language Header向网络服务器传递的信息包含客户端有哪些语言,以及当网络服务器发回响应时首选哪种特定语言。

Accept-Language

en-gb

当网络服务器无法识别首选语言时,通常会使用特定Header。

也就是说,Accept-Language Header的关键是相关性。必须确保设置的语言符合数据目标域和客户端的IP位置。原因很简单,如果来自同一个客户端的请求内置有多种语言,网络服务器就会怀疑是爬虫行为,因此,网站就可能会阻止网络抓取过程。

03 HTTP Header Accept-Encoding

Accept-Encoding Header通知网络服务器在处理请求时使用哪种压缩算法。换句话说,当从网络服务器发送到客户端时,如果服务器可以处理,就会确认可以压缩的信息。

Accept-Encoding

br,gzip,deflate

使用该Header优化后它可以节省流量,从流量负载的角度来看,这对客户端和网络服务器来说都比较好。客户端仍然会获得所需的信息,只是被压缩了。数据压缩后,网络服务器的流量小了,资源就节约下来了。

04 HTTP Header Accept

Accept Header属于内容协商类别,其目的是通知网络服务器可以向客户端返回什么类型的数据格式。

Accept

test/html,application/xhtml+xml,application/x

ml;q=0.9,*/*;q=0.8

听起来很简单,但是网络抓取最常犯的一个错误就是忽略或忘记根据网络服务器接受的格式来配置Header。如果Accept Header配置得当,就会让客户端和服务器之间的通信更加像真实用户行为,从而减少网络爬虫被封锁的可能性。

05 HTTP Header Referer

在将请求发送到网络服务器之前,Referer Header会提供请求前用户所在的网页地址。

Referer

http://www.google.com/

在网站试图阻止抓取过程时,Referer Header其实影响不大。一个随机的真实用户很可能上网时间间隔数小时。因此,如果您想网络抓取工具的流量看上去更加自然,只需在开始网络抓取会话之前指定一个随机网站。

选哪个网页不重要,不要忘记采用这个步骤就行。每次抓取前记得设置Referer Header,这样会让您看起来更像自然用户。

总结

希望本文提供的常见HTTP Header列表能够帮助您了解,配置哪些网络抓取的Header,可以提高您网络抓取工具成功抓取数据的概率。

毫无疑问,您对网络抓取的技术方面了解得越多,您的网络抓取结果就会越有成效。合理地使用这些知识,您的网络爬虫将更高效地工作。您可以查看我们的文章了解更多的信息,也可以随时访问我们的中文官网与客服进行沟通。

常见的HTTP Headers有哪些?相关推荐

  1. 什么是HTTP Headers?

    什么是HTTP Headers HTTP是"Hypertext Transfer Protocol"的所写,整个万维网都在使用这种协议,几乎你在浏览器里看到的大部分内容都是通过ht ...

  2. HTTP Headers 入门

    非常感谢 @ytzong 同学在twitter上推荐这篇文章,原文在此. 本文系统的对HTTP Headers进行了简明易懂的阐述,我仅稍作笔记. 什么是HTTP Headers HTTP是" ...

  3. (十)HTTP协议【前后端分离的时代,网络请求是前端的生命线】

    HTTP协议 提问 状态码 分类 常见状态码 关于协议和规范 http methods 传统的methods 现在的methods Restful API 如何设计成一个资源 1.尽量不用url参数 ...

  4. 你知道304吗?图解强缓存和协商缓存

    http协议-常见状态码,请求方法,http头部,http缓存 一.http状态码 1.引例阐述 2.状态码分类 3.常见状态码 4.关于协议和规范 二.http 方法 1.传统的methods 2. ...

  5. http 302错误_http面试题

    作者:忘れられたくない 出自:SegmentFault 思否 原文:segmentfault.com/a/1190000024538846 http状态码分类 1xx服务器收到请求 2xx请求成功 3 ...

  6. 【转载】浏览器缓存详解:expires cache-control last-modified

    下面的内容展示了一个常见的 Response Headers,这些 Headers 要求客户端最多缓存 3600 秒,也给出了一个 pub1259380237;gz 的校验值. HTTP/1.x 20 ...

  7. Web 面试之 HTTP和浏览器

    Web 面试之 HTTP和浏览器 前言 一.HTTP 1.说说网络分层模型? 2.HTTP 常见的状态码有哪些? 2.HTTP 常见的 header 有哪些? 3.什么是 Restful API? 4 ...

  8. 手把手教QT—2. 启航篇,手动建工程及工程文件讲解

    前言 本节来讲手动建Qt工程.既然Qt界面设计部分的代码是自动生成的,那为什么还要讲手动建工程.对于初学者来说,打好基础十分重要.为了初学者更好地理解Qt,印象更深刻,本节还是要讲解一下简单的手动建工 ...

  9. 【前端面试课程重点总结】

    长文警告⚠⚠⚠ 题目引出: typeof能判断哪些类型? 何时使用===何时使用==? window.onload和DOMContentLoaded的区别? JS创建10个<a>标签,点击 ...

最新文章

  1. Linux日常之允许或禁止指定用户或IP进行SSH登录
  2. git commit -amend_最常见的Git错误都有哪些,如何解决它们?
  3. OpenCV自适应阈值化函数adaptiveThreshold详解,并附实例源码
  4. 【快乐水题】594. 最长和谐子序列
  5. Soldier and Traveling
  6. android olhttp 缓存,android okhttp 缓存设置
  7. 转《JAVA和C#得相同点和不同点》
  8. 【EASYDOM系列教程】之属性操作
  9. 计算机网络—GBN协议(后退N帧协议)
  10. vue学习笔记-vue双向数据绑定
  11. 于仕琪libfacedetection WIN10 VS2015
  12. 大众点评全球吃货地图 五一海外游神器
  13. 软件工程——软件的系统设计
  14. 【Base64是什么?】
  15. 分页符怎么删除,word不要的页面删不掉
  16. PHP 公众号文章 转 pdf,如何将微信公众号文章另存为pdf文件 微信公众号文章另存为pdf文件的方法...
  17. circos 作图简介
  18. .bat批处理命令的介绍
  19. Emoji 表情还能这样玩?
  20. 00 大数据架构课程导论

热门文章

  1. pdf横向打印java_C#使用adobe acrobat reader命令行在横向打印PDF文档
  2. 计算机怎么搜索程序和文件格式,PDF软件如何快速搜索与查找文件?
  3. MFC-CListCtrl重绘,添加按钮到单元格
  4. css【详解】steps()函数
  5. I帧、B帧、P帧以及IDR帧之间的关系
  6. 数学模型复习资料---自用款--大家可以借鉴来复习--持续更新
  7. 如何在ORACLE数据库的字段上建立索引?
  8. yyyy/mm/dd变成yyyy-mm-dd
  9. 向大佬学习C语言1198: 考试排名(二)(结构体专题)
  10. js 翻转表格(行列互换)