selenium:指挥浏览器工作

selenium可以用几行代码,控制浏览器,做出自动打开、输入、点击等操作,就像是有一个真正的用户在操作一样。

在遇到页面交互复杂或是URL加密逻辑复杂的情况时,selenium就派上了用场,它可以真实地打开一个浏览器,等待所有数据都加载到Elements中之后,再把这个网页当做静态网页爬取就好了。

不过,由于要真实地运行本地浏览器,打开浏览器以及等待网渲染完成需要一些时间,selenium的工作不可避免地牺牲了速度和更多资源,不过,至少不会比人慢。

安装

pip install selenium

配置驱动

推荐的是Chrome浏览器,打开下面的链接,就可以下载Chrome的安装包了,Windows和Mac都有:

https://localprod.pandateacher.com/python-manuscript/crawler-html/chromedriver/ChromeDriver.html

其他浏览器驱动的下载地址:

Firefox浏览器驱动:geckodriver

IE浏览器驱动:IEDriverServer

Edge浏览器驱动:MicrosoftWebDriver

Opera浏览器驱动:operadriver

PhantomJS浏览器驱动:phantomjs

下载的驱动,要放在Python路径旁,即可正常使用驱动

简单案例

1.自动填充内容,并触发按钮的点击:

from selenium import webdriver
import time

# 设置浏览器引擎
driver = webdriver.Chrome()

# 请求网页
url = ‘https://localprod.pandateacher.com/python-manuscript/hello-spiderman/‘
driver.get(url)
time.sleep(2)

# 获取输入框,并填充内容
teacher = driver.find_element_by_id(‘teacher‘)
# 输入文字
teacher.send_keys(‘酱酱‘)

# 获取输入框,并填充内容
assistant = driver.find_element_by_name(‘assistant‘)
# 输入文字
assistant.send_keys(‘都喜欢‘)

time.sleep(2)

# 清除元素内容
teacher.clear()
time.sleep(2)
teacher.send_keys(‘蜘蛛侠‘)

# 获取按钮,并触发点击事件
sub = driver.find_element_by_class_name(‘sub‘)
# 点击按钮
sub.click()

time.sleep(2)

# 关闭浏览器
driver.close()

2.爬取QQ音乐精彩评论:

使用的是静默模式(浏览器默默运行,并不会弹出)

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

# 设置静默模式
chrome_options = Options()
chrome_options.add_argument(‘--headless‘)

# driver = webdriver.Chrome()
driver = webdriver.Chrome(options=chrome_options) # 浏览器在后台默默运行
print(‘正请求网页内容...‘)
driver.get(‘https://y.qq.com/n/yqq/song/000xdZuV2LcQ19.html‘)
time.sleep(2)

print(‘加载更多...‘)
# 点击加载更多
more_hot_btn = driver.find_element_by_class_name(‘js_get_more_hot‘)
more_hot_btn.click()

time.sleep(1)

print(‘获取评论...‘)
# 获取评论
comments = driver.find_element_by_class_name(‘js_hot_list‘).find_elements_by_class_name(‘js_cmt_li‘)
for comment in comments:
    print(comment.find_element_by_class_name(‘js_hot_text‘).text)
    print("")

driver.close()

其他资料:

1.selenium官方文档:https://selenium.dev/selenium/docs/api/py/api.html

2.selenium中文翻译文档:https://selenium-python-zh.readthedocs.io/en/latest/

3.设置浏览器驱动:https://www.cnblogs.com/muxs/p/11346740.html

4.基础入门:https://www.jianshu.com/p/1531e12f8852

原文地址:https://www.cnblogs.com/KeenLeung/p/12208487.html

时间: 2024-07-31 00:05:08

selenium:指挥浏览器工作的相关文章

浏览器工作原理

浏览器工作原理的实质就是实现http协议的通讯,具体过程如下: HTTP通信的流程,大体分为三个阶段:1. 连接 服务器通过一个ServerSocket类对象对8000端口进行监听,监听到之后建立连接,打开一个socket虚拟文件.2. 请求 创建与建立socket连接相关的流对象后,浏览器获取请求,为GET请求,则从请求信息中获取所访问的HTML文件名,向服务器发送请求.3. 应答 服务收到请求后,搜索相关目录文件,若不存在,返回错误信息.若存在,则想html文件,进行加HTTP头等处理后响应

Selenium Python浏览器调用:伪浏览器

WebDriver驱动介绍 因为移动端的driver目前没有接触,所以主要介绍PC端driver,PC端的driver都是基于浏览器的,主要分为2种类型: 一种是真实的浏览器driver:safari.firefox.ie.chrome等 比如:safari.firefox.ie.chrome都是通过浏览器原生组件来调用浏览器的原生API,这些driver都是直接启动并通过调用浏览器的底层接口来驱动浏览器的,因此具有最真实的用户场景模拟,主要用于进行web的兼容性测试使用. 一种是伪浏览器dri

了解浏览器工作原理-初步

作者:zccst 同样,先感谢同事们的技术分享,使我开始关注浏览器工作原理.(其实很早就想关注,但由于各种各样的原因一直拖延着) 先留一个链接,慢慢攒着 浏览器的工作原理:新式网络浏览器幕后揭秘(转)了解浏览器工作原理-初步,布布扣,bubuko.com

使用Selenium对浏览器进行后退、前进和刷新操作

使用Selenium操作浏览器,有时需要进行后退.前进和刷新操作,下面是示例代码: import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class SeleniumTest { public static void main(String[] args) { System.setProperty("webdriver.firefox.bin", &q

浏览器工作原理及相关内核、技术介绍

好吧,我最喜欢的就是原理方面的介绍了..好处有两个:1.了解原因更方便与工(zhuang)作(bi):2.原理都是相同的,大道归一啊(吐) 正文开始: 一.浏览器工作原理(简化版) 1.浏览器用来干什么用 浏览器的主要功能是将用户请求访问的web资源呈现出来,它需要从服务器请求资源,并将其显示在浏览器窗口中,资源的格式通常是HTML,也包括PDF.image及其他格式.用户用URI(Uniform Resource Identifier 统一资源标识符)来指定所请求资源的位置. HTML和CSS

浏览器工作原理——页面加载

浏览器工作大流程 来看个图: 从上面这个图中,我们可以看到那么几个事: 1)浏览器会解析三个东西: 一个是HTML/SVG/XHTML,事实上,Webkit有三个C++的类对应这三类文档.解析这三种文件会产生一个DOM Tree. CSS,解析CSS会产生CSS规则树. Javascript,脚本,主要是通过DOM API和CSSOM API来操作DOM Tree和CSS Rule Tree. 2)解析完成后,浏览器引擎会通过DOM Tree 和 CSS Rule Tree 来构造 Render

python+selenium自动化测试——浏览器驱动

selenium控制浏览器需要下载对应版本的驱动,并把下载好的驱动解压然后拷贝到python的安装目录. 1.chrome 驱动对应版本及下载地址;https://npm.taobao.org/mirrors/chromedriver/ 2.firefox 驱动下载地址 ;https://github.com/mozilla/geckodriver/releases/ 3.IE 驱动下载地址;http://www.cr173.com/soft/195732.html IE的启用保护模式 打开IE

selenium Gird2——浏览器参数化和与分布式测试

selenium server环境配置 下载Java JDK:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htm 下载Selenium Standalone Server:https://www.seleniumhq.org/download/ 配置环境变量 新增系统变量JAVA_HOME:C:\Program Files\Java\jdk1.8.0_191 新增系统变量CLASS

[转帖]浏览器工作原理

浏览器工作原理详解 原贴地址不详 .. 这篇文章是以色列开发人员塔利·加希尔的研究成果.她在查阅了所有公开发布的关于浏览器内部机制的数据,并花了很多时间来研读网络浏览器的源代码.她写道: 在 IE 占据 90%市场份额的年代,我们除了把浏览器当成一个“黑箱”,什么也做不了.但是现在,开放源代码的浏览器拥有了过半的市场份额,因此,是时候来揭开神秘的面纱,一探网络浏览器的内幕了.呃,里面只有数以百万行计的C++ 代码… 本篇文章的英文原版:How Browsers Work: Behind the