一个业务需求是从一个网站上抓取客户的评论信息,评论数据已经渲染好在html上由接口返回的,只能从HTML上一个个扣数据。一开始是使用的HtmlUnit来处理,但期间一直抛出拒绝访问提示但是从浏览器可以直接访问,我就换别的网站进行访问,别的网站能够正常抓取数据,期间也试过设置请求头,直到在调试时偶然抛出不一样的错误at script.M(https://challenges.cloudflare.com/turnstile/v0/g/d2a97f6b6ec9/api.js?onload=KHGO2&render=explicit:1)
没截到图,搜了才发现该网站使用了cloudflare的人机检查,猜想HtmlUnit可能不是真正的请求,而是模拟的请求所以被cloudflare拦了下来。所以换了Selenium来处理
Selenium不能单独使用,需要和不同浏览器的Driver来配合使用,我使用的是ChromeDriver
1.下载Chrome和对应版本的ChromeDriver
Chrome版本和ChromeDriver版本要对手不让回抛出错误
我的chrome是126的版本
chromeDriver就也需要下载126版本 114及114之前的版本可以从这下载
http://chromedriver.storage.googleapis.com/index.html
最新版本需要到这下载
https://googlechromelabs.github.io/chrome-for-testing/
2.添加selenium依赖
3.访问页面
相关代码
还是抛出403 禁止访问
将selenium依赖升级到4.10 访问成功