这次是在Ubuntu16.04上进行的,使用selenium之前,你先得将Firefox或者Chrome或者IE的驱动放进/usr/bin里面,我用的是Ubuntu自带的Firefox,然后Firefox的驱动在这里下
Mozilla Github这里

64位的就选64位,32位的Linux应该很少了吧,然后解压cp进/usr/bin

selenium各函数使用说明

现在网上的教程基本都是你抄我的,我抄你的,百度出来的都是千篇一律的,没啥价值,所以同学百度可以,要适度哦

这是python-selenium的官方文档地址python-selenium

安装selenium:

sudo pip install selenium

官方文档呢只是大概的讲了一下,其实selenium可没有他们说的那么简单

第一步:打开一个网页

这一步呢是新建一个空白的网页窗口

我们先导入模块,这一步很重要

from selenium import webdriver

然后使用webdriver打开Firefox

driver = webdriver.Firefox()

Chrome么就

driver = webdriver.Chrome()

不过一样的你都得下他们的驱动放进/usr/bin

到这里还是不会出来web浏览器窗口的
然后我们打开一个网页,这里以淘宝为掩饰

driver.get("https://www.taobao.com")

然后这个时候,就会自动用Firefox打开了淘宝的页面

第一步完成

第二步:driver的操作

我们可以看一下淘宝的title是什么

title = driver.title
s = title.encode("utf-8")
print s

下面是我当时操作时候的输入输出

>>> driver = webdriver.Firefox()
>>> driver.get("https://www.taobao.com")
>>> title = driver.title
>>> title.encode("utf-8")
'\xe6\xb7\x98\xe5\xae\x9d\xe7\xbd\x91 - \xe6\xb7\x98\xef\xbc\x81\xe6\x88\x91\xe5\x96\x9c\xe6\xac\xa2'
>>> print title
淘宝网 - 淘!我喜欢

用selenium最重要的是要记得解码,因为title返回的Unicode,然后是没法输出中文的,所以这里加了一个解码,这是在python2.x中,3.x好像方法换了

1. driver.current_url

这是返回当前所在网页的URL的

>>> driver.current_url
u'https://www.taobao.com/'
>>>

2. driver.close()

这是关闭当前页面的,比如你一个Firefox打开了很多页面,这是关闭当前页面的,要想关闭打开的Firefox,用方法3

3. driver.quit()

这就是将Firefox直接关闭

4. driver.current_window_handle

前面不是说,你打开了很多页面吗,这是获取你当前页面handle的

>>> driver.current_window_handle
u'2147483649'
>>>

一般就是用这个来定位当前的页面,然后在不同页面之间做切换,怎么切换,看下面

5. dirver.switch_to_window(args *window_handle)

上面不是得到一个window handle了吗,你可以从最后介绍那个10.函数返回的当前handle列表里面选择一个handle,然后把他传进参数里面,driver就可以切换到那个页面

6. driver.get(args *url)

这个不用说了吧,打开一个网页

7. driver.title

返回网页的title,记得解码

8. driver.get_cookies()

获得当前页面的cookies

>>> c = driver.get_cookies()
>>> c
[{u'domain': u'.taobao.com', u'secure': False, u'value': u'cn', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'thw'}, {u'domain': u'www.taobao.com', u'secure': False, u'value': u'dw:1920&dh:950&pw:1920&ph:950&ist:0', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'_med'}, {u'domain': u'.taobao.com', u'secure': False, u'value': u'0', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'v'}, {u'domain': u'.taobao.com', u'secure': False, u'value': u'1caee2ae81e41ea28739ca4d84e3770d', u'expiry': None, u'path': u'/', u'httpOnly': True, u'name': u'cookie2'}, {u'domain': u'.taobao.com', u'secure': False, u'value': u'193cd88d532ec07d17c993b706481253', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u't'}, {u'domain': u'.taobao.com', u'secure': False, u'value': u'B4rGEMrmAEECAXBziEByBkK1', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'cna'}, {u'domain': u'.taobao.com', u'secure': False, u'value': u'Ara22fu6y3-0uopHvyoKNvjaBue41/oR', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'l'}, {u'domain': u'.taobao.com', u'secure': False, u'value': u'Ap2dqHwZmQPXl30vUxrYiXPurXBcstEMj8zaxV9i2fQjFr1IJwrh3GsEJrDv', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'isg'}, {u'domain': u'.taobao.com', u'secure': False, u'value': u'ci%3D-1_1', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'mt'}]
>>> type(c)
<type 'list'>
>>> for i in c:
...     print i
... 
{u'domain': u'.taobao.com', u'secure': False, u'value': u'cn', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'thw'}
{u'domain': u'www.taobao.com', u'secure': False, u'value': u'dw:1920&dh:950&pw:1920&ph:950&ist:0', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'_med'}
{u'domain': u'.taobao.com', u'secure': False, u'value': u'0', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'v'}
{u'domain': u'.taobao.com', u'secure': False, u'value': u'1caee2ae81e41ea28739ca4d84e3770d', u'expiry': None, u'path': u'/', u'httpOnly': True, u'name': u'cookie2'}
{u'domain': u'.taobao.com', u'secure': False, u'value': u'193cd88d532ec07d17c993b706481253', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u't'}
{u'domain': u'.taobao.com', u'secure': False, u'value': u'B4rGEMrmAEECAXBziEByBkK1', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'cna'}
{u'domain': u'.taobao.com', u'secure': False, u'value': u'Ara22fu6y3-0uopHvyoKNvjaBue41/oR', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'l'}
{u'domain': u'.taobao.com', u'secure': False, u'value': u'Ap2dqHwZmQPXl30vUxrYiXPurXBcstEMj8zaxV9i2fQjFr1IJwrh3GsEJrDv', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'isg'}
{u'domain': u'.taobao.com', u'secure': False, u'value': u'ci%3D-1_1', u'expiry': None, u'path': u'/', u'httpOnly': False, u'name': u'mt'}

返回的是用list包起来的dict

9. driver.implicitly_wait(args *time)

这是driver等待结果多少秒,如果没有出现,就不等了,这个一般是用在用css selector或者xpath选取元素时候以免等待时间过长用的

10. driver.window_handles

这是返回用selenium打开的Firefox里面现在有多少个子页面的,每个页面对应一个handle

>>> driver.window_handles
[u'2147483649', u'2147483685']

这个说明我现在打开了两个页面,一般你第一个打开的页面会放在list[0]里,也就是第一个,然后依次打开,依次的append进去list里面

其他的在官方文档里都有介绍,selenium最强大的功能还是find_element系列函数,这个官方文档有详细介绍,抓页面的时候简直是神器,好了就说这么多,有关更多selenium的问题