📌  相关文章
📜  使用Selenium的浏览器自动化

📅  最后修改于: 2020-05-19 10:46:54             🧑  作者: Mango

Selenium是通过程序控制Web浏览器的强大工具。它适用于所有浏览器,可在所有主要操作系统上运行,并且其脚本以多种语言编写,例如Python,Java,C#等,我们将使用Python。
精通Selenium可以帮助您自动执行日常任务,例如控制推文,Whatsapp短信以及使用15-30行Python代码真正打开浏览器的情况下进行谷歌搜索。安装

1.1 Python中的Selenium

Selenium提供了一种方便的API来访问Firefox,Chrome等Selenium Web驱动程序。

pip install Selenium

1.2 Web驱动程序
Selenium需要一个Web驱动程序才能与所选浏览器交互。Web驱动程序是一个与Web浏览器进行交互的程序包。它通过所有人通用的有线协议与Web浏览器或远程Web服务器进行交互。

Chrome:https//sites.google.com/a/chromium.org/chromedriver/downloads
Firefox:https//github.com/mozilla/geckodriver/releases
Safari:https:     //webkit.org/blog/6900/ webdriver-support-in-safari-10 /

 

入门

from selenium import webdriver
# 用于使用睡眠函数,因为selenium仅在加载页面的所有元素时才起作用
import time
from selenium.webdriver.common.keys import Keys
# 创建实例Webdriver
browser = webdriver.Firefox()
browser.get('https://www.twitter.com')
# 让用户看到并加载元素
time.sleep(2)
login = browser.find_elements_by_xpath('//*[@id="doc"]/div[1]/div/div[1]/div[2]/a[3]')
# 使用类似于鼠标点击的点击函数.
login[0].click()
print("Loggin in Twitter")
user = browser.find_elements_by_xpath('//*[@id="login-dialog-dialog"]/div[2]/div[2]/div[2]/form/div[1]/input')
# 输入用户名
user[0].send_keys('USER-NAME')
user = browser.find_element_by_xpath('//*[@id="login-dialog-dialog"]/div[2]/div[2]/div[2]/form/div[2]/input')
# 从文本文件读取密码,因为将密码保存在脚本中只是愚蠢的.
with open('test.txt', 'r') as myfile:
    Password = myfile.read().replace('\n', '')
user.send_keys(Password)
LOG = browser.find_elements_by_xpath('//*[@id="login-dialog-dialog"]/div[2]/div[2]/div[2]/form/input[1]')
LOG[0].click()
print("Login Sucessfull")
time.sleep(5)
elem = browser.find_element_by_name("q")
elem.click()
elem.clear()
elem.send_keys("芒果 for 芒果 ")
# 使用密钥发送特殊密钥
elem.send_keys(Keys.RETURN)
print("Search Sucessfull")
# 关闭浏览器
browser.close()

解析代码

上面的脚本用于登录Twitter并搜索极客以获取极客句柄。
因此,让我们看看它是如何工作的:
1.打开浏览器
2.创建浏览器实例,并使用.get函数连接网站。
3.查找元素可以是查找输入框或按键并使用selenium函数(例如click(),send_keys()等)与元素进行交互的任何操作。
4.关闭浏览器
到目前为止,您已经意识到该自动化脚本可以以迭代方式找到元素并与之交互。在网页中有多种查找元素的方法,您只需右键单击并检查元素,然后按名称,css选择器或xpath复制元素。

好的,基本上就是这样,您可以为每个网站创建一个自定义的自动化脚本,也可以为所有社交媒体创建一个通用的脚本,从而自动执行所有操作。
自动化没有任何限制,以上仅是使您入门的一个示例。祝您编程愉快!