selenium是一个web自动化工具,它可以控制chrome浏览器实现我们想要的功能,跟爬虫不同的是:它是模拟人类的操作。
安装
下载对应版本的chromedriver
http://npm.taobao.org/mirrors/chromedriver放到环境变量里
安装python包
1
| pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
|
编写脚本
获取xpath
获取xpath可以按下ctrl + shift + c
点击按钮, 高亮的地方右键复制 full xpath
获取id
Charome浏览器界面按下ctrl + shift + c
点击页面, 右边属性记录一下html的id属性
代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
import time from selenium import webdriver
driver = webdriver.Chrome() driver.get('https://gitee.com/login')
driver.maximize_window()
driver.find_element(By.ID, r'user_login').send_keys("这里写你的用户名")
driver.find_element(By.XPATH, r'/html/body/div[2]/div[1]/div[2]/div/div/div[1]/div[2]/div/div/div[2]/div/div/div/form/div[5]/button').click()
driver.quit()
|
常用操作
不显示浏览器界面
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| from selenium import webdriver from selenium.webdriver import ChromeOptions from selenium.webdriver.chrome.options import Options
chrome_option = Options() chrome_option.add_argument('--headless') chrome_option.add_argument('--disable-gpu')
option = ChromeOptions() option.add_experimental_option('excludeSwitches', ['enable-automation'])
driver = webdriver.Chrome(chrome_options=chrome_option, options=option) driver.get('https://signin.aliyun.com/login.htm#/main')
|
截图
1
| driver.get_screenshot_as_file("test.png")
|
使用代理
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| from selenium import webdriver from selenium.webdriver import ChromeOptions
options = webdriver.ChromeOptions()
options.add_argument('--proxy-server=http://localhost:80')
options.add_argument("--ignore-certificate-errors")
options.add_experimental_option("detach", True)
driver = webdriver.Chrome(options=options)
|