首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >常见的5个HTTP Header

常见的5个HTTP Header

原创
作者头像
用户7850017
修改2021-11-26 18:11:45
1.3K0
修改2021-11-26 18:11:45
举报
HTTP Header
HTTP Header

最常见的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/xml;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,可以提高您网络抓取工具成功抓取数据的概率。毫无疑问,您对网络抓取的技术方面了解得越多,您的网络抓取结果就会越有成效。如果您想了解有关网络抓取的更多信息,可以查看我们的文章,也可以随时访问我们的网站与客服进行沟通,我们将竭尽所能提供帮助。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档