最近网上看到别人可以用python模拟浏览器操作,学之,主要用到的模块是selenium,主要作用就是浏览器驱动,可以进行打开浏览器,点击浏览器页面按钮,输入账号密码等操作。
下面是模拟登陆知乎的代码:
需要对xpath有一定的了解,说白了其实就是网页上的路径。但短时间找对路径需要一定时间积累。
用的python2.7
另外需要提前把Firefox的驱动路径放在系统path下,可以百度下载到。
# coding:utf-8
import os
from selenium import webdriver
username = '' #知乎账号
password = ''#知乎密码
# 获取浏览器驱动,其实就是打开浏览器
driver = webdriver.Firefox()
# 窗口最大化
driver.maximize_window()
# 打开登陆页面
driver.get('https://www.zhihu.com/signup?next=%2F')
# 切换到登陆页面
driver.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div/div[2]/div[2]/span').click()
# //*[@id="root"]/div/main/div/div/div/div[2]/div[2]/span 直接复制xpath (登陆按钮)
# //*[@id="root"]/div/main/div/div/div/div[2]/div[1]/form/div[1]/div[2]/div[1]/input (用户名输入框)
# //*[@id="root"]/div/main/div/div/div/div[2]/div[1]/form/div[2]/div/div[1]/input (密码输入)
# 给输入框赋值
driver.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div/div[2]/div[1]/form/div[1]/div[2]/div[1]/input').send_keys(username)
# 输入密码
driver.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div/div[2]/div[1]/form/div[2]/div/div[1]/input').send_keys(password)
# 模拟点击
driver.find_element_by_xpath('//*[@id="root"]/div/main/div/div/div/div[2]/div[1]/form/button').click()
print driver.title
os.system("pause")