太棒了 | 手把手教你用Python做一个 “举牌小人” 生成器!

Posted 数据分析与统计学之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了太棒了 | 手把手教你用Python做一个 “举牌小人” 生成器!相关的知识,希望对你有一定的参考价值。

教你如何使用Selenium库

本文禁止转载,如有违反,严肃处理!

前几天写了一个婴儿级别的爬虫图文教程,大家很喜欢。戳我查看:3000字 “婴儿级” 爬虫图文教学 | 手把手教你用Python爬取 “实习网”!

趁热打铁,恰好周末看到哈佛哥发布的一个朋友圈,有人咨询这个 “举牌小人” 怎么做?基于此,我想借此为大家再写一篇 “爬虫应用” 的文章,教你制作一个好玩儿的 “举牌小人” (如图所示)。

本文就是玩儿,劳逸结合才是王道!


在这篇文章,我会为大家详细介绍selenium库的使用,也希望能够帮助到一部分朋友。

Selenium库的安装与简单使用

1. 安装selenium库

pip install selenium

结果如下:

2. chromedriver驱动的配置

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

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

① 检查谷歌浏览器的版本

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

② 下载chromedriver驱动

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

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

③ chromedriver驱动的配置

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

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

3. 检验selenium是否可用

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

from selenium import webdriver
browser = webdriver.Chrome()

结果如下:

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

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

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

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

1. 分析网页

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

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

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

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

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

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

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

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

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

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()

结果如下:

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

好了,本文就介绍到这里,主要是娱乐 + selenium库的简单使用,希望对一部分朋友有帮助,我的目的就达到了!

以上是关于太棒了 | 手把手教你用Python做一个 “举牌小人” 生成器!的主要内容,如果未能解决你的问题,请参考以下文章

手把手教你用Python做web疫苗登记系统

纯干货:手把手教你用Python做数据可视化(附代码)

丢掉Excel,手把手教你用Python做可视化数据,还能任意调节动画丝滑度

又有趣又好玩的9个Python编程小游戏简直太棒了!

手把手教你用Python读取Excel

元旦到了,手把手教你用 Python 制作一个炫酷烟花秀