Python selenium无界面headless

news/2024/7/19 10:32:30 标签: python, selenium, 爬虫, Python爬虫

视频版教程:一天掌握python爬虫【基础篇】 涵盖 requests、beautifulsoup、selenium

Chrome-headless 模式, Google 针对 Chrome 浏览器 59版 新增加的一种模式,可以让你不打开UI界面的情况下使用 Chrome 浏览器,所以运行效果与 Chrome 保持完美一致,因此速度快与要打开界面的selenium,其使用方法和selenium一样。 1.配置要求

1.系统要求:

Chrome
   Unix\Linux 系统需要 chrome >= 59
   Windows 系统需要 chrome >= 60
Python3.6及以上
Selenium==3.4及以上
ChromeDriver==2.31及以上

2.配置代码

from selenium import webdriver
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable‐gpu')
# 自己的Chrome浏览器文件路径
path = r'C:\Users\java1234\AppData\Local\Google\Chrome\Application\chrome.exe'
chrome_options.binary_location = path
browser = webdriver.Chrome(options=chrome_options)

参考代码:

python">from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
import time

chrome_options = Options()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable‐gpu')
# 自己的Chrome浏览器文件路径
path = r'C:\Users\java1234\AppData\Local\Google\Chrome\Application\chrome.exe'
chrome_options.binary_location = path
browser = webdriver.Chrome(options=chrome_options)

url = "https://www.baidu.com"

browser.get(url)

time.sleep(2)

browser.get_screenshot_as_file("百度首页.png")

# 获取文本框的对象
input = browser.find_element(By.ID, "kw")

# 在文本框中输入python
input.send_keys('python')

time.sleep(2)

# 获取百度一下的按钮
button = browser.find_element(By.ID, 'su')

# 点击按钮
button.click()

time.sleep(2)

# 滑到底部
# js_bottom = 'window.scrollTo(0,document.body.scrollHeight)'
js_bottom = 'document.documentElement.scrollTop=10000'
js_top = 'document.documentElement.scrollTop=0'
browser.execute_script(js_bottom)

time.sleep(2)

browser.execute_script(js_top)

time.sleep(2)

browser.get_screenshot_as_file("第一页截图.png")

# 获取下一页的按钮
next_button = browser.find_element(By.XPATH, '//a[@class="n"]')

# 点击下一页
next_button.click()

time.sleep(2)

browser.execute_script(js_bottom)

browser.get_screenshot_as_file("下一页截图.png")

time.sleep(2)

# 返回到前一个历史记录 相当于 浏览器的返回按钮
browser.back()

time.sleep(2)

# 返回到后一个历史记录  相当于 浏览器的前进按钮
browser.forward()

browser.execute_script(js_bottom)

time.sleep(2)

# 退出
browser.quit()


http://www.niftyadmin.cn/n/5133497.html

相关文章

代码随想录day4:链表总结

两两交换链表中的节点 一开始自己的思路只是两两交换,并没有说涉及到前一个节点。实际上两两交换涉及到了三个节点 使用虚拟头结点,这样一次性处理三个节点。且每次组里第一个节点其实数值没变。 class Solution { public:ListNode* swapPairs(ListNod…

Python超入门(7)__迅速上手操作掌握Python

# 31.类 class Point:# 构造函数def __init__(self, x, y, z):self.x xself.y yself.z z# 自定义函数def move(self):print("move")def draw(self):print("draw")# 定义一个Point类的实例point1 # 注意:新建实例的参数要与构造函数一致 poi…

dash--项目的前端展示简单基础

1.前置工作 创建虚拟环境: sudo apt-get install python3-venv # 安装 python3 -m venv venv # 在本目录下创建venv虚拟环境(也是一个文件夹。如果用不到这个虚拟环境以后就rm -rf venv) source venv/bin/activate # 激活虚拟环境临时使用清华…

TensorRT量化实战课YOLOv7量化:pytorch_quantization介绍

目录 前言1. 课程介绍2. pytorch_quantization2.1 initialize函数2.2 tensor_quant模块2.3 TensorQuantizer类2.4 QuantDescriptor类2.5 calib模块 总结 前言 手写 AI 推出的全新 TensorRT 模型量化实战课程,链接。记录下个人学习笔记,仅供自己参考。 该…

洛谷趣题【过河卒】参考题解

背景 今天逛洛谷才注意到这道题,原题连接【P1002 [NOIP2002 普及组] 过河卒 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)】 对于爱下棋的我来说,当然是必刷之题。 题意 小卒起始点在左上角(0,0)处,我们的程序将接收两个坐标&#xff1…

Linux网络编程二(TCP三次握手、四次挥手、TCP滑动窗口、MSS、TCP状态转换、多进程/多线程服务器实现)

TCP三次握手 TCP三次握手(TCP three-way handshake)是TCP协议建立可靠连接的过程,确保客户端和服务器之间可以进行可靠的通信。下面是TCP三次握手的详细过程: 假设客户端为A,服务器为B 1、第一次握手(SYN1,seq500&…

79 电话号码的字母组合

电话号码的字母组合 题解1 回溯比较直观的理解 给定一个仅包含数字 2-9 的字符串,返回所有它能表示的字母组合。答案可以按 任意顺序 返回。 给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 示例 1: 输入…

lwip代码分析

lwIP(Lightweight IP)是一个为嵌入式系统设计的轻量级TCP/IP协议栈。它旨在为资源受限的环境提供完整的网络协议功能,同时保持低内存使用和代码大小。由于其模块化的设计,开发者可以根据需要选择包含或排除特定功能,以…