爬虫 之 selenium

selenium的使用,首先要有对应的浏览器插件,下载地址:http://npm.taobao.org/mirrors/chromedriver/

查看Chrome对应版本,我们以2.45为例


爬虫 之 selenium_第1张图片
1-1

打开之后,里面有一个notes.txt文件夹

1-2

打开之后就可以看到和浏览器版本的对应关系了

爬虫 之 selenium_第2张图片
1-3

下载下来压缩包之后解压出来的文件就是我们需要的

爬虫 之 selenium_第3张图片
1-4

现在有两种用的方法,第一种就是把这个文件随便找个地方放,然后在用selenium的时,将这个文件的路径写进去

driver = webdriver.Chrome(“路径”)

获取将这个文件配置到你的Chrome浏览器的文件中


爬虫 之 selenium_第4张图片
1-5

这用就可以不用写路径就可以直接运用了

driver = webdriver.Chrome()

下面说一下selenium的一些应用,首先用selenium获取的元素是无法直接获取属性的

需要用到get_attribute("属性"),这个要注意

获取到的元素.get_attribute("href")

然后就是弹出框的处理

有时会遇到点开一个选项,那个元素就在那里,但是无论如何就是获取不到,是不是很烦人,这是就要注意了,会不会是弹出框,selenium也有处理弹出框的函数

写过游戏的应该有所了解,一般一个窗口就是一个聚丙,弹出框就是打开了一个新的聚丙,我们需要找到这个聚丙

curHandle = driver.current_window_handle       #获取当前窗口聚丙 

allHandle = driver.window_handles      #获取所有聚丙

然后确定到这个聚丙上面就可以找到上面的元素了,一般打开一个新的窗口,就会增加一个聚丙,聚丙数量还是很有限的,所以这个方法准确率还是很高的

for h in allHandle:

    if h != curHandle:

        web.switch_to.window(h) #切换聚丙,到新弹出的窗口

        break

一些常用设置

options = webdriver.ChromeOptions()

options.add_experimental_option('excludeSwitches', ['enable-automation'], )        #开发者模式

options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images":2})        #不加载图片

# options.add_argument('--headless')            #不显示界面

driver = webdriver.Chrome(options=options)

你可能感兴趣的:(爬虫 之 selenium)