当前位置: 首页 > wzjs >正文

成都做网站设计哪家最权威专业做苗木的网站

成都做网站设计哪家最权威,专业做苗木的网站,北京门户网站建设公司,西安建站软件目录一、前期准备及排坑0.背景1.本地环境2.坑点1(java版本太低)2.1解决坑点1二、部署到linux环境1.历史遗留问题2.坑点22.1解决坑点23.坑点3一、前期准备及排坑 0.背景 由于需要获取某个网站的cookie数据,但是该网站又一定的反爬机制&#…

目录

  • 一、前期准备及排坑
    • 0.背景
    • 1.本地环境
    • 2.坑点1(java版本太低)
    • 2.1解决坑点1
  • 二、部署到linux环境
    • 1.历史遗留问题
    • 2.坑点2
    • 2.1解决坑点2
    • 3.坑点3

一、前期准备及排坑

0.背景

由于需要获取某个网站的cookie数据,但是该网站又一定的反爬机制,导致常规的调用java的那些工具类发送get请求获取不到(包括对请求头进行伪装等等)。最后只能模拟浏览器请求来获取。这时就使用到了selenium。

1.本地环境

本地环境:
jdk:1.8
系统环境:win10
springboot2版本:2.1.3.RELEASE
chrome:137.0.7151.69(当时最新版本)
chromedriver:去网站找到对应的版本即可
注意:chrome和chromedriver版本需要保持一致。

2.坑点1(java版本太低)

首先,我先去找了几个ai去实现我这个功能,也说了使用springboot2和java8版本去实现。但是ai回复都是用org.seleniumhq.selenium的4.x版本,导致入坑。经过一顿报错之后,最后提示jdk版本过低,至少需要jdk11才行。但是企业项目不可能随便让你换jkd版本,此时第一个坑遇到了,只能找其他解决方案。

2.1解决坑点1

一顿排查,结论只能降低依赖版本,我这个springboot2版本,其实本身自带一下selenium依赖的,当时我就怀疑,为啥不能直接用原始的3.x版本呢?我去掉引入的selenium相关依赖,使用框架原始的依赖。
原始依赖版本如下:
在这里插入图片描述

执行过后还是遇到一点小问题,一些依赖没有成功引入。
最后再原来的基础上,又手动加了一个依赖。(理论上应该不需要这个依赖,因为已经有了,可能是当时频繁换依赖本地仓库的问题之类的吧,暂时没再关心过了。)

<dependency><groupId>org.seleniumhq.selenium</groupId><artifactId>selenium-java</artifactId><version>3.14.0</version>
</dependency>

除上述依赖外,没有额外引入任何其它依赖了。

再次进行调试,win10环境成功跑通。

测试代码如下

public static void main(String[] args) {String url = "https://********";if (SysEnv.getEnv().equals(Status.EnvFlag.WIN.getIndex())) {System.setProperty("webdriver.chrome.driver", "A:\\software\\work\\chromedriver-win64\\chromedriver.exe");} else {System.setProperty("webdriver.chrome.driver", "/home/chrome/chromedriver/chromedriver");}WebDriver driver = null;try {ChromeOptions options = new ChromeOptions();//options.addArguments("--headless");// 创建 WebDriver 实例driver = new ChromeDriver(options);driver.get(url);// 等待一段时间确保页面加载完成(根据实际情况调整等待时间)Thread.sleep(1000 * 5);driver.navigate().refresh();Thread.sleep(1000 * 5);} catch (Throwable e) {log.error("执行异常:", e);} finally {if (Objects.nonNull(driver)) {log.info("执行关闭浏览器");driver.quit();}}
}

二、部署到linux环境

1.历史遗留问题

测试环境为centos7、生产为Ubuntuubuntu14.04。天崩开局
先安装官方的Chrome浏览器linux版本,这个需要加速,然后下载安装包进行安装,当然你也可以查查在线安装方式。
在这里插入图片描述

centos7勉强还能装上,Ubuntu根本装不上。

2.坑点2

在centos7中验证是否安装成功,执行后先是提示缺少依赖,然后装完依赖又提示系统版本低,解决方法是需要升级centos7系统。到这基本就无解了,系统不能直接简单粗暴的升级系统,风险很高。并且运维还测试了新一些的Ubuntu18装Chrome,也能成功,那么还是得升级系统,到这就不考虑下载官方的新版Chrome了。

2.1解决坑点2

网上一顿搜,总结的方案入下
1.降低Chrome版本
2.部署到docker容器中
3.升级linux系统

先从方案1入手,以为是最简单的方案,但是发现,官方不提供历史版本的下载地址,第三方的Chrome维护的linux版本也不全。耗时好久也找不到合适的,就是chromedriver找旧版本很好找。
方案2实现成本也很高,暂时没验证。
方案3不考虑
最终,在机缘巧合下,发现chromium这个东西,ai了一下这个东西。
在这里插入图片描述
centos7安装命令

yum install -y chromium

查询版本

chromium-browser --version

最终又使用这个Chromium 进行尝试,先在centos7中安装Chromium ,然后在代码中使用这个浏览器。

ChromeOptions options = new ChromeOptions();
options.setBinary("/usr/bin/chromium-browser");

在这个过程中你如果在centos7中还遇到了一些其他问题可以尝试加上这些配置

options.addArguments("--headless"); // 无头模式,在Linux环境下通常需要
options.addArguments("--disable-gpu");
options.addArguments("--no-sandbox"); // 解决Linux环境下的沙箱问题
options.addArguments("--disable-dev-shm-usage"); // 解决/dev/shm空间不足问题

还有一个指定用户数据路径的配置

//userDataDir这个是你自己生成的一个随机不重复的文件夹,使用完selenium后可以直接删掉
options.addArguments("--user-data-dir=" + userDataDir);

部署到centos7验证,功能可以实现。

3.坑点3

当在Ubuntu环境安装时,发现由于Ubuntu版本太低,安装Chromium 也不行,能安装的Chromium 最高版本65.0.3325.181,此版本没有支持的driver。最终只能又找了一台centos7服务器进行远程调用获取相关参数,算是一个曲线解决方案,暂时没找到更好的解决方式。



文章转载自:

http://ajUgwGeK.ryywf.cn
http://hdI4zaS9.ryywf.cn
http://X9tLu13o.ryywf.cn
http://DxdznXU9.ryywf.cn
http://YZb9ykyq.ryywf.cn
http://GRgKb3a9.ryywf.cn
http://rxzzjXkd.ryywf.cn
http://kjNJXBke.ryywf.cn
http://P9OxO6Ys.ryywf.cn
http://VqytWEmq.ryywf.cn
http://ZO4YJk8o.ryywf.cn
http://zDt9lnoL.ryywf.cn
http://QnOaWNGu.ryywf.cn
http://eHR9vw6w.ryywf.cn
http://yREMrZWl.ryywf.cn
http://sSZ88qZd.ryywf.cn
http://loDUNnkF.ryywf.cn
http://I73rok5H.ryywf.cn
http://Om0asP1E.ryywf.cn
http://uDfOlDAB.ryywf.cn
http://Qji2pQE3.ryywf.cn
http://nVffNK0K.ryywf.cn
http://yJCFDFfe.ryywf.cn
http://dN9vzBzF.ryywf.cn
http://2lfNjWLh.ryywf.cn
http://KmSiPLiw.ryywf.cn
http://dS4dLbgH.ryywf.cn
http://RUq69jkr.ryywf.cn
http://F0IsKnts.ryywf.cn
http://2tYe89q3.ryywf.cn
http://www.dtcms.com/wzjs/779688.html

相关文章:

  • 做静态网站怎样让图片自己切换wordpress 首页 插件
  • 免费企业建网站广州网站建设推荐q479185700霸屏
  • 做网站有那几种末班中国纪检监察报电子报刊
  • 手机做网站价格类似稿定设计的网站
  • 汕头网站设计电话暴雪安全令
  • 网站搭建要多少钱网络营销的培训课程
  • 襄阳网站建设-飞鱼网络手机制作网页app
  • phpmysql网站设计买卖交易网
  • 哪里有免费的网站推广全世界足球排名国家
  • 做网站是要收费的吗网络热词2023
  • 网站建设公司做ppt吗西安网站排名优化
  • 导航网站设计网站权限控制
  • 能不能同行网站做站长统计专业企业网站建设报价
  • 广西响应式网站制作进入百度一下官网
  • 专业设计网站推荐常州做网站公司有哪些
  • 接做网站需要问什么条件做58同城的网站要多少钱
  • 知己知彼网站做网站语言排名2018
  • 周口公司做网站做网站的励志故事
  • 深圳最好的营销网站建设公司排名网站里的动画是什么软件做的
  • 合肥网站建站报广告代理唐山网站建设维护
  • 建筑工程素材资源网站电子商务平台内的自然人经营者
  • dedecms做的系统网站主页是哪一个文件门户网站架构
  • 南昌外包建站Wordpress用七牛云存储
  • 网站广告位外链建设对网站的影响
  • 宁波找网站建设企业微信开发者工具教程实例
  • 网站到期请续费泉州服装电商网站建设
  • 深圳专业软件网站建设seo的内容怎么优化
  • 建设网站找谁大气网站首页
  • 国内医院网站开发现状wordpress采集公众号图片
  • 工艺品网站模板下载-古色古香科技小论文怎么写