python爬虫之selenium安装和基本使用

文章介绍了Selenium作为自动化测试框架的基础知识,包括其用于Web爬虫的功能。内容涵盖Selenium的安装、浏览器驱动程序的配置,以及基本和进阶的使用方法,如窗口管理、页面导航。此外,提到了使用Selenium时的策略和注意事项,以及如何利用Selenium进行页面元素操作和数据提取。
摘要由CSDN通过智能技术生成

目录

前言

关于selenium

关于selenium的基本知识

学前准备

安装selenium

安装浏览器驱动程序

selenium的基本使用

 进阶使用

语法

 maximize_window最大化窗口

set_window_size指定窗口大小 

 back回退页面,forward前进页面


前言

基本保持一月一更的状态了,太频繁反而没有质量。

最近也接入了chatGPT辅助学习,效率确实蛮高的,但是我也感受到了很大的依赖性。

关于selenium

Selenium是一个流行的自动化测试框架,也可以用于构建Web爬虫。它支持多种编程语言,如Python、Java、C#等,使得它可以适用于不同的开发环境和需求。

我们可以编写程序对浏览器进行控制操作,以进行自动化测试。

关于selenium的基本知识

  1. Selenium的主要功能是模拟浏览器操作,包括页面导航、表单填写、点击按钮等,从而实现自动化测试和Web爬取。

  2. Selenium的核心组件是WebDriver,它提供了一组API来控制浏览器操作,并提供了多种浏览器驱动程序,如Chrome、Firefox、Safari等。

  3. 使用Selenium构建Web爬虫时,可以使用WebDriver来打开网页,解析HTML页面并提取需要的数据。此外,Selenium还提供了一些辅助工具,如Selenium IDE和Selenium Grid等,可以帮助开发者更方便地进行自动化测试和分布式测试。

  4. 在使用Selenium构建Web爬虫时,需要注意一些技巧和策略,以确保程序的健壮性和可靠性。例如,需要设置合适的等待时间、使用代理IP、避免频繁访问同一网站等。

  5. 最后,需要注意的是,使用Selenium构建Web爬虫也需要遵守相关的法律和规定,以保护用户数据的安全和隐私。

学前准备

安装selenium

selenium为第三方库所以我们要使用pip命令在终端中安装Selenium库:

pip install selenium

安装浏览器驱动程序

安装了selenium之后,我们还要下载浏览器驱动程序,Selenium需要浏览器驱动程序来控制浏览器操作,我需要下载并安装特定浏览器的驱动程序。例如,如果我使用的是Chrome浏览器,则需要下载Chrome浏览器驱动程序,下载地址为:https://sites.google.com/a/chromium.org/chromedriver/downloads。

 根据你目前浏览器的版本选择对应的浏览器版本进行下载,不对应浏览器版本的话可能会出现无法运行的结果。

selenium的基本使用

# 导入selenium库
from selenium import webdriver


# 创建chrome浏览器
chrome = webdriver.Chrome(executable_path='./chromedriver.exe')


# 发送请求 打开百度搜索页面
chrome.get('http://www.baidu.com')


# 获取html
page = chrome.page_source


# 输出搜索结果
print(page)


# 关闭浏览器
chrome.quit()

首先我们创建了一个Chrome浏览器对象,并使用get()方法打开百度搜索页面。然后,我们使用chrome.page_sourcel来获取HTML,最后输出搜索结果。最后,使用quit()方法关闭浏览器。

下面我们来看chatGPT给我们的例子:

from selenium import webdriver

# 创建Chrome浏览器对象
driver = webdriver.Chrome('/path/to/chromedriver')

# 打开百度搜索页面
driver.get("https://www.baidu.com/s?wd=selenium")

# 获取搜索结果
results = driver.find_elements_by_css_selector('.result')

# 输出搜索结果
for result in results:
    print(result.text)

# 关闭浏览器
driver.quit()

在这个示例中,首先我们创建了一个Chrome浏览器对象,并使用get()方法打开百度搜索页面。然后,我们使用find_elements_by_css_selector()方法查找搜索结果,并使用text属性获取搜索结果的文本内容,最后输出搜索结果。最后,使用quit()方法关闭浏览器。

当然,这只是一个简单的示例,你可以根据自己的需要使用更多的Selenium API来实现更复杂的Web爬虫应用。

 进阶使用

语法

下面是一些常见 的selenium的基本语法和用法:

语法/用法描述
webdriver.<browser>.<option>创建指定浏览器的选项对象,例如webdriver.ChromeOptions()
webdriver.<browser>(executable_path='<path>')创建指定浏览器的驱动对象,并指定驱动程序的路径,例如webdriver.Chrome(executable_path='/path/to/chromedriver')
driver.get('<url>')打开指定的URL。
driver.find_element_by_<attribute>('<value>')根据给定的属性查找元素,并返回第一个匹配的元素,例如driver.find_element_by_id('my-id')
element.send_keys('<value>')向文本输入框中输入文本值。
element.click()单击元素。
element.text获取元素的文本内容。
element.get_attribute('<attribute>')获取元素的指定属性值,例如element.get_attribute('href')
driver.quit()关闭浏览器。

 maximize_window最大化窗口

我们运行第一个selenium的时候发现并不是最大化的窗口,我们可以使用maximze_window()方法对其进行最大化处理,同时让浏览器休眠3秒,以模仿人为的操作,不进行频繁的点击。

from selenium import webdriver
from time import sleep
from selenium.webdriver.chrome.service import Service

def test_max():
    # 创建一个浏览器
    driver = webdriver.Chrome(executable_path='./chromedriver.exe')

    # 打开页面
    driver.get('https://www.baidu.com')
    # 最大化窗口
    driver.maximize_window()
    # 睡眠三秒后关闭浏览器
    sleep(3)
    driver.quit()

set_window_size指定窗口大小 

除了最大化窗口意外,我们话可以使用set_window_size()方法来指定窗口的大小:

from selenium import webdriver
from time import sleep
from selenium.webdriver.chrome.service import Service


def test_size():
    # 创建一个浏览器
    driver = webdriver.Chrome(executable_path='./chromedriver.exe')

    # 打开页面
    driver.get('https://www.baidu.com')
    # 设置成指定大小
    driver.set_window_size(1000,600)
    # 睡眠三秒后关闭浏览器
    sleep(3)
    driver.quit()

 back回退页面,forward前进页面

可以使用back和forward来控制页面的回退或者前进:

from selenium import webdriver
from time import sleep
from selenium.webdriver.chrome.service import Service

def test_forward_back():
    # 创建一个浏览器
    driver = webdriver.Chrome(executable_path='./chromedriver.exe')

    # 打开页面
    driver.get('https://www.baidu.com')
    sleep(2)
    driver.get('https://www.itbaizhan.com')
    sleep(2)
    # 后退到上一个页面
    driver.back()
    sleep(2)
    # 前进
    driver.forward()
    # 睡眠三秒后关闭浏览器
    sleep(3)
    driver.quit()

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我还可以熬_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值