无头浏览器与Selenium:探索无界爬虫的奇妙世界

selenium设置无头浏览器

背景

​ 我们之前的selenium都是浏览器驱动自动打开一个网页,执行相关操作,其实也可以让其后台显示,不用在前台显示。

​ 要设置无头浏览器,可以使用Selenium的Headless模式。在Headless模式下,Selenium会在后台运行浏览器,而不会显示实际的浏览器窗口。

优点:

无头浏览器(Headless Browser)是指在没有图形用户界面(GUI)的情况下运行的浏览器。它能够执行和显示网页,但不会显示实际的浏览器窗口。

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# 创建ChromeOptions对象
chrome_options = Options()
# 在ChromeOptions中设置无头模式
chrome_options.add_argument("--headless")
# 实例化Chrome浏览器对象,并将ChromeOptions对象传递给它
driver = webdriver.Chrome(options=chrome_options)
# 在无头浏览器中执行相关操作
driver.get("https://www.example.com")
# 进行其他操作...
# 关闭浏览器
driver.quit()

案例:

实战案例一:

​ 要求:使用无头浏览器访问百度,然后截个图保存到本地

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import time

# 创建一个参数对象,用来控制chrome以无界面模式打开
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
# 驱动路径
path = './chromedriver.exe'
# 创建浏览器对象
browser = webdriver.Chrome(executable_path=path,options=chrome_options)

# 上网
url = 'http://www.baidu.com/'
browser.get(url)
time.sleep(3)
# 截图 看个结果
browser.save_screenshot('baidu.png')

browser.quit()

无头浏览器与Selenium:探索无界爬虫的奇妙世界_第1张图片

实战案例二:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

# 驱动路径
path = r'D:\Downloads\xx\chromedriver-win64\chromedriver.exe'

# 创建一个参数对象,用来控制Chrome以无界面模式打开
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')

# 创建浏览器对象
browser = webdriver.Chrome(executable_path=path, options=chrome_options)

# 打开网页
url = 'http://www.baidu.com'
browser.get(url)

# 定位元素并执行操作
search_input = browser.find_element_by_id('kw')  # 根据ID定位搜索输入框
search_input.send_keys('Hello, World!')  # 在搜索输入框中输入文本

search_button = browser.find_element_by_id('su')  # 根据ID定位搜索按钮
search_button.click()  # 点击搜索按钮

# 等待页面加载
browser.implicitly_wait(5)  # 隐式等待5秒钟

# 获取搜索结果
results = browser.find_elements_by_css_selector('.result')  # 根据CSS选择器定位搜索结果
for result in results:
    print(result.text)  # 打印搜索结果的文本内容

# 关闭浏览器
browser.quit()

无头浏览器与Selenium:探索无界爬虫的奇妙世界_第2张图片

​ 首先创建了一个参数对象chrome_options,用来控制Chrome以无界面模式打开。然后使用webdriver.Chrome()方法创建了一个Chrome浏览器对象,并传入驱动路径和参数对象。接下来,使用get()方法打开了百度的网页。然后使用find_element_by_*方法定位了搜索输入框和搜索按钮,并执行了相应的操作。在搜索结果的部分,使用find_elements_by_css_selector()方法定位了所有的搜索结果,并通过循环打印了每个搜索结果的文本内容。最后使用quit()方法关闭了浏览器。

温馨提示:

仅供学习参考,请勿用于数据获取。本案例仅旨在展示数据获取技术的应用和原理,并提供学习参考。请注意,未经授权的数据获取可能涉及法律和道德问题。在进行任何数据获取活动之前,请确保遵守相关法律法规和网站的规定。

你可能感兴趣的:(selenium,selenium,爬虫,测试工具)