selenium与chrome实现代码控制浏览器进行任务

前言概述

最近由于网课的原因一直在折腾,怎么刷、怎么跳过,一直围绕着的都是浏览器端。每次有这方面需求我就会拾起初中时候学习的易语言进行一波操作。因为它可以直接在窗口中内置一个类似于webview的东西,然后对其进行操作js,而我以为python不能这样操作,原谅我的无知吧。
简单来说,selenium是python中的一个库,而它内置了调用chrome的一些API。而这个chrome是谷歌推出一的一种无头浏览器,即没有界面,可以使用代码进行控制。

安装

selenium直接在控制台中就可以直接安装。

pip install selenium

而chrome则需要下载谷歌浏览器并且需要下载一份无头浏览器需要的东西(chromedriver),不过你需要对着你的版本号进行下载,如果下错了是会报错的~
下载地址:http://chromedriver.storage.googleapis.com/index.html
下载完之后将其放到自己的python目录下,然后就可以愉快的玩耍啦~
Snipaste_2020-02-29_15-49-13.png

开始使用

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)        

Snipaste_2020-02-29_15-58-08.png
以上是正常窗口情况下的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!!!!

# python