python selenium 通过 browsermobproxy 设置 referer 爬虫突破ACL限制-爬虫,selenium-ICode联盟

原创  python selenium 通过 browsermobproxy 设置 referer 爬虫突破ACL限制

分类:爬虫,selenium    163人阅读    IT小君  2023-04-13 12:29

题记

爬虫爬取一个网页的时候,竟然打不开页面,返回如下出错误信息:

403 Forbidden
You don't have permission to access the URL on this server.

denied by Referer ACL

Powered by Tengine
CDN Request Id: 701ea29a16813829660952616e

从中可看出 服务器 Tengine 设置了Referer ACL(引用来源控制),即请求头request 的headers 的Referer 不被允许访问页面,所以把Referer改成爬取站点应该地址应该就可以吧?于是使用postman验证一番:

果然正常返回了页面代码,接下来就是修改爬虫的referer属性。如下:

 

说明:selenium官方是不支持修改请求的headers 的,所以以下代码没作用

 chrome_options = webdriver.ChromeOptions()
 chrome_options.add_argument("referer=http://www.example.com/")

解决方案是使用代理拦截器修改header,或者使用扩展比如:seleniumwire

以下代码通过修改browsermobproxy的headers实现修改selenium header

作者:chatgpt ,体验:https://yy123.ink/chatgpt

以下是使用Python和BrowserMob Proxy设置Referer的示例代码:

import browsermobproxy as BMP
from browsermobproxy import Server
from selenium import webdriver

# 启动BrowserMob Proxy服务器
server = Server("path/to/browsermob-proxy")
server.start()
proxy = server.create_proxy()

# 配置Chrome浏览器使用代理
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--proxy-server={0}".format(proxy.proxy))

# 启动Chrome浏览器
driver = webdriver.Chrome(chrome_options=chrome_options)

# 设置Referer
proxy.new_har("example.com", options={'captureHeaders': True, 'captureContent': True})
proxy.headers({"Referer": "https://www.example.com/"})

# 访问网页
driver.get("http://www.example.com")

# 获取请求
har = proxy.har
print(har)

# 关闭浏览器和代理服务器
driver.quit()
proxy.close()
server.stop()

在上面的代码中,我们首先启动了BrowserMob Proxy服务器,并使用`create_proxy()`方法创建了一个代理对象。然后,我们使用ChromeOptions来配置Chrome浏览器使用代理,通过`proxy.proxy`获取代理地址。接着,我们启动Chrome浏览器,并使用`new_har()`方法开始记录请求。然后,我们设置Referer为`https://www.example.com/`,通过`headers()`方法将其添加到请求头中。最后,我们使用`get()`方法访问一个网站,并使用`proxy.har`获取请求信息。最后关闭浏览器、代理服务器并停止BrowserMob Proxy服务器。

点击广告,支持我们为你提供更好的服务

高级岗位个人求职面试网页模板

互联网设计师个人简历网页模板

canvas卡通液体马赛克图像特效

HTML5浪漫风格婚礼婚纱婚庆网站模板

3dmax弹跳鼠标跟随动画特效

教育辅导培训机构HTML5网站模板

HTML5保健品营养品引导页模板

css照明喷泉灯光动画特效

html5鼠标经过星星连成一条线特效

css精美蝴蝶动画特效

商务代理服务商公司网站模板

CSS3 SVG叶子虚线响应式布局代码

炫酷WebGL流体图片滑动切换效果

打造健康生活方式宣传网站模板

时尚css导航菜单栏动画特效

极简品牌设计工作室HTML5网站模板

创意设计机构HTML5网站模板

4款不同岗位个人求职简历网页模板

html5 canvas文字放射发光动画特效

有趣的css图片遮罩层滤镜特效

点击广告,支持我们为你提供更好的服务
 工具推荐 更多»