前言
刚学习了Python爬虫,想找个项目练习一下,于是尝试使用Python自动帮我更新新浪微博。在实现的过程中遇到了很多问题,不断解决的过程中确实很好地锻炼了自己的编程能力。生活需要仪式感当然也需要成就感,用学到的知识去做一些有趣的事情也是激励我们不断学习下去的动力~
我把自动发送微博分成了以下三步:
一.自动登录新浪微博;
二.通过爬虫获取微博发送内容;
三.自动发送。
下面我们就来分别说说怎么分别实现这几个步骤。
1.自动登录新浪微博
这里使用到了一个自动化测试工具——Selenium(Python中提供了Selenium库)。简单来说,Selenium可以像真人一样打开浏览器并操作网页中你想要操作的元素,使用这个工具可以很方便地帮助我们完成网站的登录操作。使用前,你需要完成以下准备工作:
安装Selenium
在命令行中,输入“pip install selenium” 即可:
下载浏览器,建议使用Firefox
下载geckodriver
下载地址:https://github.com/mozilla/geckodriver/releases,根据自己的电脑选择合适的版本,笔者下载的是Windows系统64位版本。
下载好后解压,放在Python的scripts目录下,如图所示:
现在我们看看Python中如何使用Selenium来操作浏览器实现自动登录:
这里选择了用QQ登录新浪微博,因为直接登录可能会遇到验证码问题,新浪微博的验证码笔者目前还没有研究过如何破解,而QQ的滑动验证相对来说是比较好破解的,上述代码中的“slip_verify()”是自定义的一个函数,用于破解QQ登录过程中可能出现的滑动验证,代码如下:
2.通过爬虫获取微博发送内容
以爬取果壳网首页的文章为例,代码如下:
上面这段代码从果壳网首页获取了一篇文章(包括标题和链接),长这样:
【科技】除了猜想,黎曼还有哪些不为人知的故事?https://www.guokr.com/article/445628/
3.自动发送微博
登录成功、获取素材都搞定了,现在只差把这些内容发送出去。我们已经知道通过Selenium可以操作网页元素,那么现在只需要完成两个动作微博就可以顺利发出去了:将内容输入到文本框;点击“发布”按钮。实现代码如下:
结语
结合这三步,如果我们从多个网站获取素材,再加上一些循环条件就可以每天定期更新自己的微博啦。时间有点晚还在肯德基,准备回家咯,回头会把整个程序的源代码贴出供大家参考,谢谢啦~