前言概述
最近由于网课的原因一直在折腾,怎么刷、怎么跳过,一直围绕着的都是浏览器端。每次有这方面需求我就会拾起初中时候学习的易语言进行一波操作。因为它可以直接在窗口中内置一个类似于webview的东西,然后对其进行操作js,而我以为python不能这样操作,原谅我的无知吧。
简单来说,selenium是python中的一个库,而它内置了调用chrome的一些API。而这个chrome是谷歌推出一的一种无头浏览器,即没有界面,可以使用代码进行控制。
安装
selenium直接在控制台中就可以直接安装。
pip install selenium
而chrome则需要下载谷歌浏览器并且需要下载一份无头浏览器需要的东西(chromedriver),不过你需要对着你的版本号进行下载,如果下错了是会报错的~
下载地址:http://chromedriver.storage.googleapis.com/index.html
下载完之后将其放到自己的python目录下,然后就可以愉快的玩耍啦~
开始使用
chrome有两种运行模式,一种是刚才我所说的无头模式,听起来有些带感。另外一种就是如同浏览器一样的窗口。
代码
//引入selenium 与 操作chrome的api
from selenium import webdriver
//创建操作对象
driver = webdriver.Chrome()
//打开网址
driver.get('https://baidu.com/')
//查找一个ID叫kw的元素,设置value为‘翦珂义牛逼’
driver.find_element_by_id('kw').send_keys(u'翦珂义牛逼')
//输出网页的html
print(driver.page_source)
以上是正常窗口情况下的chrome,那如何设置无头模式呢,加入以下代码。
//引入设置chrome设置的包
from selenium.webdriver.chrome.options import Options
opt = Options()
opt.add_argument('--headless')
然后将创建对象的代码改为:
driver = webdriver.Chrome(options=opt)
这样就是无头模式了,并不会出现窗口。
常用操作
注入JS
with open('main.js', 'r', encoding='UTF-8') as f:
mainText = f.read()
self.driver.execute_script(mainText)
最后
python nb!!!!