获得一台1h2g的云服务器(半永久)(可自定义开通1-65535全端口)磁盘4g
首先说清楚,这个服务器只是一个可以进行1-65535端口映射的nat服务器,并不能绑定域名啥的,最好用来搭建游戏服务器,socket连接正常,映射的端口通过固定的域名访问,但仍然是80端口,相当于伪端口映射,自带的是这样的伪端口映射,如果真的是要进行正常的端口访问(比如游戏服务器),其实可以用上内网穿透的,不过对于一些测试场景,其实不用考虑这些,比如用来做一些后台api就相当适合
原理:
腾讯云CODING 项目下的 Cloud Studio 能开通免费的 1h2g工作空间(相当于一个免费的Ubuntu服务器),缺点在于不能保持工作空间一直运行,即离开ide后间隔一段时间会自动关闭工作空间,虽然ide中能对工作空间进行设置,配置为永不休眠,但实际上关闭ide页面后过一段时间也会关闭工作空间,所以我想出的办法是,在工作空间的Ubuntu环境中搭建Playwright(网页自动化工具),在工作空间里面自带的服务器终端上访问该工作空间对应的ide页面(只要一直打开ide页面,工作空间是不会主动关闭的)
Cloud Studio:https://ide.cloud.tencent.com/
Cloud Studio介绍:
Cloud Studio是腾讯云发布的一站式云端开发工具。
它支持开发者利用Web IDE(集成开发环境),实现远程协作开发和应用部署。
Cloud Studio提供的功能有代码自动补全、代码纠错、代码AI评审、单元测试生成等,可以帮助开发者提高编码效率和质量。
Playwright介绍:
Python Playwright 是 Playwright 的 Python 绑定,它允许 Python 开发者使用 Playwright 提供的 API 来自动化和控制无头浏览器(如 Chromium, Firefox, 和 WebKit)以及 Electron 应用。Playwright 是一个无头浏览器测试库,可以用于网页自动化、爬虫、UI 测试等场景。
使用 Python Playwright,你可以:
- 打开和关闭浏览器。
- 导航到不同的网页。
- 与网页进行交互,如点击按钮、填写表单等。
- 读取和修改网页内容。
- 捕获网页截图或 PDF。
- 执行复杂的网络请求和响应操作。
- 对网页进行性能测试和用户体验分析。
Python Playwright 是 Playwright 项目的一部分,该项目还提供了 JavaScript 和 TypeScript 的绑定。由于 Playwright 是基于 Chromium, Firefox, 和 WebKit 的,因此它支持现代 web 标准,并且可以很好地处理现代 web 应用。
操作:
一、创建一个Ubuntu环境的空项目工作空间(一定得选免费版1C2G,其他配置都需要消耗免费时长(每月3000分钟))如图


二、创建完成后进入工作空间
如图所示,注意终端一栏(这一栏相当于命令行窗口,这里面能执行linux命令)

三、将清华源添加到ubuntu镜像源
在资源管理器窗口右键,将“etc/apt”文件夹添加到工作区



Ubuntu清华源:https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/
复制以下框中内容,添加到“etc/apt/sources.list”文件里面,保存文件


四、
更新apt
apt-get update
安装Playwright
pip install playwright
初始化Playwright,安装chrome内核(全部内核对应为chromium, chrome, chrome-beta, msedge, msedge-beta, msedge-dev, firefox, firefox-asan, webkit)
playwright install chromium
如果出现以下错误

就改输入
playwright install
直接输入“playwright install”会默认安装(chrome,fixfox等)四个浏览器的内核,只要看到chromium下载好就行了,剩下的不用管,按Ctrl+C可以中止指令

接下来输入
playwright install-deps
安装浏览器相关依赖
下载login.py,将login.py上传到工作区(workspace文件夹下)

终端运行
python /workspace/login.py
会提示缺少以下依赖

输入以下代码,安装缺少依赖
apt-get install -y libatk1.0-0
apt-get install -y libatk-bridge2.0-0
apt-get install -y libcups2
apt-get install -y libxkbcommon0
apt-get install -y libatspi2.0-0
apt-get install -y libxcomposite1
apt-get install -y libgbm1
再次输入
python /workspace/login.py
看到以下内容说明一切正常运行,在登录前后会打印网页的标题来判断是否成功登录,提示QQ账号安全登录说明正在腾讯云QQ登录界面

修改url,复制当前工作空间网址到url变量里面,url变量的值即为当前工作空间网址

如果出现500,将上面的“tty”改成“ws”,这里不演示了

例如

再次运行
python /workspace/login.py
等待资源管理器workspace出现yzm.png(二维码图片),需要在提示扫码登录的30s内使用QQ扫码登录
前提是需要在腾讯云使用QQ登录的账号(登录Cloud Studio的时候是使用的腾讯云的号,腾讯云记得绑定QQ),因为我的账号是使用QQ登录的,所以就只写了QQ登录的脚本,如果有需要可以自行使用Playwright写其他登录的脚本
登录成功后理论上会出现以下文字

看到___(工作区)就可以不用管了
接下来你就可以新建终端,在新终端干自己的事情了
到目前为止我已经测试了一整个下午了,服务器仍然没掉,一直在线
第一次成功登录后会产生“login_data.json”文件,这里面保存有cookie数据,下次重新运行脚本就不用扫码登录了,直接就能访问工作空间

记得把工作空间状态设置为永不休眠


五、如何开启端口映射,以及获取映射后的网址
将“chromedriver”文件拖入资源管理器“workspace”

运行
chmod +x /workspace/chromedriver
/workspace/chromedriver

打开端口界面,点击这个


9515即为该程序的端口,外网链接除了端口号剩下的都是固定的,比如我想访问12345端口,直接将9515修改为12345就行

获取到该链接以后就可以杀掉chromedriver进程了,我们的目的只是为了获取该链接

在终端按Ctrl+C退出程序
目前24h正常运行坚持了3天断了
等我写一个每隔一天重新登录(清除缓存)的脚本
2024-2-19/22:50 又g了,坚持了48h,cookie最多只能存在48h,等我再研究一下
相关文件:https://files.cnblogs.com/files/blogs/697472/login-2024-2-15.zip
修改后:https://files.cnblogs.com/files/blogs/697472/login-2024-2-18.zip

浙公网安备 33010602011771号