Python Selenium 快速上手

Selenium是用于浏览器测试的自动化工具,可以直接运行在浏览器中,模拟用户的各种操作。在爬虫领域的应用,主要就是模拟人的操作,打开浏览器,获取网页源码。获得网页源码之后就可以再利用BeautifulSoup、XPath等去解析和提取我们需要的数据了。


1 导入核心模块

  selenium.webdriver模块是使用中的核心模块,提供了常用浏览器的WebDriver实现。目前支持的WebDriver实现有Firefox,Chrome,IE和Remote等,本文主要使用Chrome展示。

# 导入webdriver模块
from selenium import webdriver


2 打开浏览器

  导入driver模块之后,就可以使用它打开浏览器了,代码如下所示

browser = webdriver.Chrome(chrome_path) # chrome_path为本地的chrome驱动的路径
browser_phantomjs = webdriver.PhantomJS(phantomjs_path) # phantomjs_path为本地的phantomjs_path的路径


3 打开网页

  打开Chrome浏览器后,会打开一个默认的空白标签页,接下来就可以在标签页中打开一个网页了,代码如下所示:

url = r"https://www.jianshu.com/u/a9f6f9178f66"
browser.get(url) # 打开网页
init_handle = browser.current_window_handle # 获得当前标签页的句柄(用来定位不同的标签页)

  在浏览器中可以打开很多个标签页,每一个标签页都有唯一的标识,也被我们称作标签页的句柄,可以用来在不同的标签页之间切换。


4 打开多个网页

  我们也可以在新的标签页中打开另一个网页,需要通过执行一个简单的脚本语句实现,脚本语句如下第2行代码所示:

new_url = r"https://github.com/Oythonhill"
open_new_tag_command = "window.open("{}")".format(new_url) 
browser_chrome.execute_script(open_new_tag_command) # 执行脚本语句,在新的标签页中打开网页
total_handles = browser.window_handles # 获取所有标签页句柄(列表类型)

  同样的,我们也可以获取当前所有打开标签页的句柄(以列表类型呈现)。
  然后,就可以通过不同的标签页句柄,在标签页之间切换,代码如下:

browser.swich_to.window(init_handle) # 根据之前获取的标签页句柄定位


5 获取源码

  打开网页的目的就是为了获取网页的页面源码,获得源码之后就可以通过Beautiful或者XPath进行解析了,当然也可以使用Selenium内置的定位元素的一些方法,这个在另外一篇再说。

  获取当前标签页的源码的代码如下:

source_code = browser.page_source

  最后,就是关闭标签页和浏览器

browser.close() # 关闭当前标签页
browser.quit() # 关闭整个浏览器


转载请注明出处,http://www.cnblogs.com/Oythonhill/p/8542680.html
交流和问题,请邮箱联系:oythonhill@163.com

转载于:https://www.cnblogs.com/Oythonhill/p/8542680.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值