python构造referer_Python爬虫教程之——详解http请求头中的User-agent与Referer

本文介绍了Python爬虫中HTTP请求头的重要部分——User-agent和Referer。User-agent通常用于伪装浏览器身份,防止被识别为爬虫;Referer则指示了用户是从哪个页面链接到达当前请求的页面,其正确设置对于避免反爬机制至关重要。文章提醒在编写爬虫时,务必注意这两个字段的设置。
摘要由CSDN通过智能技术生成

Hello大家好,我们又见面了!

这是我写的第一篇python文章,还望各位朋友们多多指教!

废话不多说,我们进入正题。

本文为EricNTH的原创博客,转载请注明出处!

Http请求头(header)

写过python爬虫的人都知道,在用requests发送http请求时,都会有一个header。里面装了这次http请求的头信息。要想做好爬虫,设计好请求头是非常重要的,否则万一被反爬虫查出(很容易),得不偿失。

以下简介来自百度:

HTTP客户程序(例如浏览器),向服务器发送请求的时候必须指明请求类型(一般是GET或者POST)。如有必要,客户程序还可以选择发送其他的请求头。大多数请求头并不是必需的,但Content-Length除外。对于POST请求来说Content-Length必须出现。 (HttpServletRequest)

接下来由我来给大家介绍http请求头中(可能是)最重要的两部分,也是最容易被反爬虫利用的两部分。你若不想让自己被发现是爬虫,下面就请听好啦~

User-agent

User-Agent 首部包含了一个特征字符串,用来让网络协议的对端来识别发起请求的用户代理软件的应用类型、操作系统、软件开发商以及版本号。

一般,我们写爬虫时,User-agent总是必不可少的.。

你可以通过它来伪装成浏览器在访问。

一般,user-agent里装的时访问的浏览器,以及版本号等。

'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, lik

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用VBA编写基本的爬虫代码,并包含了Host、Referer、User-Agent和Cookie请求头: ``` Sub webScraping() Dim xmlHttp As Object Dim htmlDoc As Object Dim url As String Dim headers As String ' 设置请求URL和请求头信息 url = "https://example.com" headers = "Host: example.com" & vbCrLf & _ "Referer: https://www.google.com/" & vbCrLf & _ "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" & vbCrLf & _ "Cookie: SESSIONID=1234567890abcdef" ' 创建XMLHttpRequest对象 Set xmlHttp = CreateObject("MSXML2.XMLHTTP") ' 发送GET请求 xmlHttp.Open "GET", url, False xmlHttp.setRequestHeader "Content-Type", "text/plain;charset=UTF-8" xmlHttp.setRequestHeader "Connection", "keep-alive" xmlHttp.setRequestHeader "Accept-Language", "en-US,en;q=0.9" xmlHttp.setRequestHeader "Accept-Encoding", "gzip, deflate, br" xmlHttp.setRequestHeader "Cache-Control", "max-age=0" xmlHttp.setRequestHeader "Upgrade-Insecure-Requests", "1" xmlHttp.setRequestHeader "Pragma", "no-cache" xmlHttp.setRequestHeader "DNT", "1" xmlHttp.setRequestHeader "Sec-Fetch-Site", "none" xmlHttp.setRequestHeader "Sec-Fetch-Mode", "navigate" xmlHttp.setRequestHeader "Sec-Fetch-User", "?1" xmlHttp.setRequestHeader "Sec-Fetch-Dest", "document" xmlHttp.setRequestHeader "Sec-Ch-Ua", """Google Chrome"";v=""93"", "" Not;A Brand"";v=""99"", ""Chromium"";v=""93""" xmlHttp.setRequestHeader "Sec-Ch-Ua-Mobile", "?0" ' 添加自定义请求头 xmlHttp.setRequestHeader "Host", "example.com" xmlHttp.setRequestHeader "Referer", "https://www.google.com/" xmlHttp.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3" xmlHttp.setRequestHeader "Cookie", "SESSIONID=1234567890abcdef" ' 发送请求并获取响应 xmlHttp.send ' 解析响应内容 Set htmlDoc = CreateObject("HTMLfile") htmlDoc.body.innerHTML = xmlHttp.responseText ' 输出响应结果 Debug.Print htmlDoc.body.innerHTML End Sub ``` 请注意,上述示例代码仅供参考,并且具体的请求头信息需要根据实际情况进行调整。同时,还需要注意网站是否允许爬虫访问,否则可能会触发反爬虫机制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值