当前位置:首页|资讯

很乱但莫名其妙能用的自动化测试——自动推送

作者:勇士队克莱-汤普森发布时间:2024-09-12

作者为了得到部门分,每月要写40篇推送文章,每篇文章都需要先打开新闻网站,再复制粘贴到发帖网站,署上自己和指导教师的名字然后提交。接着还要重新点开链接复制下网址和标题存起来。

作者非常懒,于是他写了一个自动化程序帮助(代替)他完成工作。

这里我选择BeatifulSoup和Selenium混用,因为BeautifulSoup比较擅长处理静态的HTML界面,用它爬取新闻网站上的内容比较合适。Selenium则可以模拟用户的行为,比如点击,输入等,可以用它帮我发布文章。

这里有一个get()方法,属于是升级了request.get()。因为request.get()必须有完整的url,但爬取到的网址有时残缺不全。因此,我将少了“https://”的网址加上了,但是其他问题的我不想处理,因为总有各种各样的问题,所以我让出现其他问题的赋值为一个固定网址。这里常规思路可能应当使用try…except…但因为是在函数内,如果没有返回值后面可能又要报错,所以偷懒没写。

这里首先利用beautifulSoup得到了新闻网站“环球网”的html界面,这个界面长这样。


环球网主页

通过检查我们不难发现,我们想要的新闻网页的网址和标题的特点是,标签为a,有href属性,href的值就是网址,其中带有article的是我们想要的新闻。于是我们先将标题和网址都存到字典中。

然后我们打开随便一篇新闻。

新闻页

我们看到,这里我们想要的文章标签为p。于是我们找到所有标签为p的位置,并把他们加起来,如果长度超过500就保存在新字典中。这里可以直接屏蔽我刚才偷懒写的那个网址,因为它是一个视频,文字部分非常短。

然后就是Selenium的部分了,这里我们首先到达登录界面,通过css属性找到输入框,这非常容易,因为只有两个,那他们就分别是0,1。

进入发帖网站后是点击,输入,这里就不赘述了。比较重要的是使用wait,因为页面可能加载的比较慢。另外,如果你已经连接到iframe里,进行其他操作时一定不要忘了断开连接(作者因为这个问题被卡了好长时间……)

啊啊最后是私货,Vsinger旗下虚拟歌手徵羽摩柯的ai声库终于出了,大家快去听!!!

然后,作者最近可能会更一点点小甜饼,会跟之前儿童节的剧情有关。

祝大家生活愉快,天天开心,考试不挂科,逃晚自习不被点名(不是)!



Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1