Python趣味实战之手把手教你实现举牌小人生成器


Posted in Python onJune 07, 2021

Selenium库的安装与简单使用

 1. 安装selenium库

pip install selenium

结果如下:

Python趣味实战之手把手教你实现举牌小人生成器

2. chromedriver驱动的配置

如果你想要驱动谷歌浏览器,自动打开浏览器,必须匹配chromedriver驱动,否则会报错。

配置chromedriver驱动,一定要注意 “驱动” 和 “谷歌浏览器” 版本一定是要相匹配,否则不能使用。

① 检查谷歌浏览器的版本

这里首先提供一个详细的地址供大家查看:
https://jingyan.baidu.com/article/95c9d20d74a1e8ec4f756149.html
点击“右上角三个点” --> 点击“设置” --> 点击 “关于chrome”,出现如下界面。

Python趣味实战之手把手教你实现举牌小人生成器

② 下载chromedriver驱动

这里再次提供一个详细的地址,供大家选择各种版本驱动程序:
http://chromedriver.storage.googleapis.com/index.html
从上面的图中可以看出,谷歌浏览器的版本是【81.0.4044.138】,这里我们选择的对应版本的驱动,如下图所示。

Python趣味实战之手把手教你实现举牌小人生成器

点进该文件后,可以根据我们的操作系统,选择对应的驱动。

Python趣味实战之手把手教你实现举牌小人生成器

③ chromedriver驱动的配置

解压上述下载好的文件,并将解压后我们得到的chromedriver.exe文件,需要放到python的安装路径下(和python.exe放在一起)。
首先,你可以查看你的python解释器安装在哪里!

Python趣味实战之手把手教你实现举牌小人生成器

然后,将chromedriver.exe放置和python.exe在一起

Python趣味实战之手把手教你实现举牌小人生成器

3. 检验selenium是否可用

使用如下两行代码,如果谷歌浏览器成功被驱动打开,证明上述安装和配置没问题。

from selenium import webdriver
browser = webdriver.Chrome()

结果如下:

Python趣味实战之手把手教你实现举牌小人生成器

如果出现上图,则证明你的chromedriver驱动配置成功。接下来,你可以尽情享用库了。

selenium库制作一个“举牌小人”

这里给你提供一个网址:
http://www.atoolbox.net/Tool.php?Id=789

我们就是利用这个网址,基于selenium库,为大家制作一个好玩儿的 “举牌小人”。

1. 分析网页

首先,我们打开上述网址(如图所示),操作步骤我为大家简述了一下。

Python趣味实战之手把手教你实现举牌小人生成器

当然,这三个步骤都是认为操作浏览器得到的效果。

此时,我们就是要使用库,模拟人为操作浏览器,实现这三步操作。

  • Ⅰ 定位“输入框”;
  • Ⅱ 定位“生成”这二字的节点;
  • Ⅲ 定位“下载”这二字的节点;

点击F12,打开开发者工具,我们先来定位“输入框”,可以看到这里的id属性是up-content

Python趣味实战之手把手教你实现举牌小人生成器

再来定位“生成”这二字的节点,可以看到这里的id属性是preview

Python趣味实战之手把手教你实现举牌小人生成器

最后再来定位“下载”这二字的节点,可以看到这里的id属性是download

Python趣味实战之手把手教你实现举牌小人生成器

在selenium中,有如下多种方法,来定位节点。这个其实就是定位方法,没必要多讲述。由于我这里是通过id属性,定位对应节点,因此使用的方法就是find_element_by_id

Python趣味实战之手把手教你实现举牌小人生成器

这里我为大家上代码了,代码中有详细的注释,整个操作过程就代码中的①②③④这几步。

from selenium import webdriver
import time

# 定义一个input输入函数,这就是待输入的关键词;
keyword = input("请输入关键词:")

# 创建浏览器对象,该操作会自动帮我们打开Google浏览器窗口;
browser = webdriver.Chrome()

# 调用浏览器对象,向服务器发送请求。该操作会打开Google浏览器,并跳转到 指定网址网页;
browser.get("http://www.atoolbox.net/Tool.php?Id=789")

# 最大化窗口(写不写无所谓,你可以尝试一下效果)
browser.maximize_window()

# ① 定位“输入框”,定位后直接调用send_keys()方法,往该输入框输入关键字;
browser.find_element_by_id("up-content").send_keys(keyword)

# ② 再定位“生成”节点,然后调用click()方法,模拟认为点击这个按钮;
browser.find_element_by_id('preview').click()

# ③ 此时,等待个几秒钟(>=5),再点击下载,不要省略这一步【为了让浏览器饭响应完全】;
time.sleep(3)

# ④ 最后再定位“下载”按钮,同样使用click()方法,模拟认为点击这个按钮;
browser.find_element_by_id('download').click()

结果如下:

Python趣味实战之手把手教你实现举牌小人生成器

这个图片的下载位置,就是谷歌浏览器的默认下载地址,我们可以修改到指定文件夹,那么所下载的图片就都在指定位置了。

Python趣味实战之手把手教你实现举牌小人生成器

到此这篇关于Python趣味实战之手把手教你实现举牌小人生成器的文章就介绍到这了,更多相关Python实现举牌小人生成器内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python实现PS滤镜特效之扇形变换效果示例
Jan 26 Python
Python with语句上下文管理器两种实现方法分析
Feb 09 Python
python3.6+opencv3.4实现鼠标交互查看图片像素
Feb 26 Python
python MySQLdb使用教程详解
Mar 20 Python
让代码变得更易维护的7个Python库
Oct 09 Python
启动Atom并运行python文件的步骤
Nov 09 Python
Pandas0.25来了千万别错过这10大好用的新功能
Aug 07 Python
matplotlib实现显示伪彩色图像及色度条
Dec 07 Python
DataFrame.groupby()所见的各种用法详解
Jun 14 Python
Django model class Meta原理解析
Nov 14 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 Python
Matplotlib绘制条形图的方法你知道吗
Mar 21 Python
怎么用Python识别手势数字
利用python调用摄像头的实例分析
Jun 07 #Python
python通过opencv调用摄像头操作实例分析
Jun 07 #Python
Python爬虫之用Xpath获取关键标签实现自动评论盖楼抽奖(二)
Jun 07 #Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
Jun 07 #Python
Pytorch中Softmax和LogSoftmax的使用详解
Jun 05 #Python
Pytorch中Softmax与LogSigmoid的对比分析
Jun 05 #Python
You might like
php实现rc4加密算法代码
2012/04/25 PHP
PHP中使用foreach和引用导致程序BUG的问题介绍
2012/09/05 PHP
php5.2 Json不能正确处理中文、GB编码的解决方法
2014/03/28 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
python进程与线程小结实例分析
2018/11/11 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
不用写JS也能使用EXTJS视频演示
2008/12/29 Javascript
浅析js中2个等号与3个等号的区别
2013/08/06 Javascript
javascript 获取元素样式必杀技
2014/05/04 Javascript
浅谈javascript函数式编程
2015/09/06 Javascript
vue项目中做编辑功能传递数据时遇到问题的解决方法
2016/12/19 Javascript
深入理解Javascript中的观察者模式
2017/02/20 Javascript
Vue报错:Uncaught TypeError: Cannot assign to read only property’exports‘ of object’#‘的解决方法
2017/06/17 Javascript
微信小程序学习之数据处理详解
2017/07/05 Javascript
把vue-router和express项目部署到服务器的方法
2018/02/21 Javascript
js实现unicode码字符串与utf8字节数据互转详解
2019/03/21 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
[02:43]中国五虎出征TI3视频
2013/08/02 DOTA
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
python 根据pid杀死相应进程的方法
2017/01/16 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
对PyQt5的输入对话框使用(QInputDialog)详解
2019/06/25 Python
OpenCV+face++实现实时人脸识别解锁功能
2019/08/28 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
2019/12/09 Python
python logging添加filter教程
2019/12/24 Python
泰国折扣酒店预订:Hotels2Thailand
2018/03/20 全球购物
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
2013/04/07 面试题
医院护士专业个人的求职信
2013/12/09 职场文书
法学专业本科生自荐信范文
2013/12/17 职场文书
中华魂演讲稿
2014/05/13 职场文书
学党史心得体会
2014/09/05 职场文书
2015新生加入学生会自荐书
2015/03/24 职场文书
班干部学习委员竞选稿
2015/11/20 职场文书
《狼王梦》读后感:可怜天下父母心
2019/11/01 职场文书
深入理解python协程
2021/06/15 Python
深入浅析python3 依赖倒置原则(示例代码)
2021/07/09 Python