Python selenium库的基本使用

selenium 最初是一个用于自动化调试网页的工具,但是后来人们发现,这东西可以用来做爬虫,抓取需要 js 脚本的网页。selenium 必须和浏览器配合使用,我喜欢 Firefox,所以这里我以 Firefox 作为例子,其他浏览器操作类似。

准备材料

首先当然要安装 selenium,用 pip install selenium 即可。

在下面的链接里,下载绿色版 Firefox(Windows 下用绿色版比较方便,Linux 随意)和 geckodriver,把它们扔到你喜欢的目录下。

https://portableapps.com/apps/internet/firefox_portable

https://github.com/mozilla/geckodriver/releases

正式开始

为了演示直观,可以用 IDLE 执行以下代码。

from selenium import webdriver

# 下面的路径改成你的路径
driverPath = r'C:\Users\xxx\Desktop\FirefoxPortable\geckodriver.exe'
firefoxPath = r'C:\Users\xxx\Desktop\FirefoxPortable\App\Firefox\firefox.exe'
option = webdriver.FirefoxOptions()
option.binary_location = firefoxPath
w = webdriver.Firefox(executable_path=driverPath, options=option)
w.get('https://www.baidu.com/')

如果不出意外,应该会弹出一个浏览器窗口,里面已经是百度了。地址栏应该跟下图差不多,表示浏览器正在被控制。

接下来我们来操作浏览器。

w.find_element_by_id('kw').send_keys('selenium')
w.find_element_by_id('su').click()

执行完之后,应该会看到我们用百度搜索了关键词“selenium”。selenium 有很多 find_element_by_<...> 的方法,可以定位元素,返回一个元素对象,然后我们就可以进行操作。这里,我推荐使用 find_element_by_css_selector,它通过一个 CSS 选择器来定位元素,学过 CSS 的人可以轻松使用。

可以通过 title 和 page_source 属性获取页面标题和 HTML 源码。要关闭浏览器,使用 close 方法即可。

a, b = w.title, w.page_source
print(a)
w.close()

这里有一个问题,我们做爬虫的时候,并不需要浏览器窗口。好在大多数浏览器都支持无头模式(Headless Mode),我们只需要在开头加上这一行就可以:

option.add_argument('--headless')
option.add_argument('--disable-gpu')

这样浏览器就会在后台运行。

文档

更多信息,可以访问 selenium 的官方文档学习:https://selenium-python.readthedocs.io/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值