像小雨主要是玩 WordPress 的,很多网站也需要登陆后才可以进行下一步操作,所以我们单独来讲一讲如何利用 Python3 模拟 wordpress 博客登陆
首先还是安装 selenium 模块,这在基础教程中已经说过如何一键安装了,就不重复演示了。
我们以火狐浏览器为例,需要先下载 geckodriver.exe 下载地址:https://github.com/mozilla/geckodriver/releases 下载完成后把 geckodriver.exe 放到你的 python3 安装目录即可,也可以单独放到一个地方,然后在系统变量中添加路径就可。
import sys
print (sys.path)
可以通过上面两行代码来查看 python 的安装路径
然后通过下面代码来调用 FireFox 浏览器
# coding=utf-8
import os
from selenium import webdriver
driver = webdriver.Firefox()
运行如果能正常启动 FireFox 浏览器即代表上面两项准备工作已经完成。
接下来我们来了解下 Selenium3 一些常用命令:
1、跳转
使用 Webdriver 做的第一件事就是跳转到一个页面,通常的做法是调用 get 方法:如打开百度网页
driver.get("http://www.baidu.com")
2、定位元素
比如上面网页结构,我们可以通过下面 3 种办法定位元素,看下就明白了
element = driver.find_element_by_id("passwd-id")
element = driver.find_element_by_name("passwd")
element = driver.find_element_by_xpath("//input[@id='passwd-id']")
3、点击事件
element.click() #比如点击登陆
4、窗口切换
driver.switch_to_window('windowname')
driver.switch_to_frame(“frameName”) #Frame 切换
5、给元素赋值
element.send_keys(username) #给元素赋值
好了我们就以实例登陆 wordpress 后台来讲解下 Python3 利用 Selenium3 模拟 wordpress 博客登陆
# coding=utf-8
import os
from selenium import webdriver
#WordPress 后台账号和密码,改为你自己的
username = "XXXXX"
password = "XXXXXXXXX"
#,获取火狐浏览器的驱动
driver = webdriver.Firefox()
#窗口最大化
driver.maximize_window()
#打开 WordPress 后台登录页面
driver.get("XXXXXXXXXX")
#给输入框赋值
driver.find_element_by_xpath('//*[@id="user_login"]').send_keys(username)
driver.find_element_by_xpath('//*[@id="user_pass"]').send_keys(password)
#模拟点击事件
driver.find_element_by_xpath('//*[@id="wp-submit"]').click()
#输出网页 title
print(driver.title)
#暂停脚本
os.system("pause")