前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Selenium 使用问题记录

Selenium 使用问题记录

作者头像
不止于python
发布于 2022-05-31 12:26:16
发布于 2022-05-31 12:26:16
80100
代码可运行
举报
文章被收录于专栏:不止于python不止于python
运行总次数:0
代码可运行

获取sessionStorage

有些爬虫需要携带sessionStorage中的一个参数, 这个参数是存在浏览器中的, 使用requests获取不到, 只能使用selenium来获取

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
xNum = browser.execute_script('return sessionStorage.xNum')

点击未显示在页面上的元素

比如: 页面上的菜单栏, 需要移动鼠标到菜单上才能显示子菜单, 然后才能点击, 但是selenium移动鼠标需要坐标, 又不太好找

解决方法

1. 执行js, 直接让子菜单显示在页面上, 然后点击, 这个需要到具体页面测试, 如何给元素添加属性能显示子菜单

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
browser.execute_script('document.querySelector("#Menu").setAttribute("display","block")')
browser.execute_script('#home').click()

2. 直接执行js点击, 需要先在页面测试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
browser.execute_script("jQuery('a#GetInfo')[0].click();")

无头模式无法访问

在调试代码的时候需要显示页面, 然后一步步调试, 终于信心满满的完成了, 接下来添加无头模式, 完犊子了, 啥也显示不出来了, 页面禁止访问了

解决方法

1. 设置请求头

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from selenium import webdriver

user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36'
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--headless")
chrome_options.add_argument('user-agent={user_agent}'.format(user_agent=user_agent))
browser = webdriver.Chrome(options=chrome_options)

2. 尝试使用Firefox浏览器

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
browser = webdriver.Firefox()

其它常用方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from selenium import webdriver

browser = webdriver.Chrome()
# 1. 请求页面
browser.get("https://www.baidu.com")

# 2. 保存部分元素图片
with open('baidu.jpg', 'wb') as f:
    f.write(browser.find_element_by_id('lg').screenshot_as_png)

# 3. 输入框输入
browser.find_element_by_id("kw").send_keys("不止于python")

# 4. 点击搜索
browser.find_element_by_id("su").click()

# 5. 获取网页源码
raw_html = browser.page_source
print(raw_html)

# 6. 执行js, 页面滚动
browser.execute_script("window.scrollTo(0,300);")

# 7. 切换到iframe
# iframe = browser.find_elements_by_tag_name('iframe')[0]
# browser.switch_to.frame(iframe)

# 7.关闭页面, 关闭浏览器 
browser.close()
browser.quit()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Selenium及Headless Ch
一般的的静态HTML页面可以使用requests等库直接抓取,但还有一部分比较复杂的动态页面,这些页面的DOM是动态生成的,有些还需要用户与其点击互动,这些页面只能使用真实的浏览器引擎动态解析,Selenium和Chrome Headless可以很好的达到这种目的。
py3study
2020/01/19
1.1K0
python爬虫之selenium记录
Chrome浏览器驱动下载地址:http://npm.taobao.org/mirrors/chromedriver/ 基础代码: browser = webdriver.Firefox() //选择浏览器 browser.find_element_by_id().send_keys() //寻找控件通过ID,且发送值selenium browser.find_element_by_id().click() //搜索的按钮的id 叫su ,且点击 browser.quit() //退出并关闭窗口的每一个相关
SingYi
2022/07/14
3560
08 Python爬虫之selenium
当获取一个网站的图片数据时,只能爬取到图片的名称,并不能获得链接,而且也不能获得xpath表达式。这是应用了图片懒加载技术。
py3study
2020/01/15
1.1K0
Python教程:selenium模块用法教程
selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题
Python学习者
2023/02/07
2K0
selenium中的备胎
基本上就是超时的error. 如果页面超时,会导致后面的所有都不执行。 selenium是单进程在执行,我们考虑搞一个备用的进程,如果主进程死了,就可以切换过来,如同我们生活中的备胎。 这样就不需要重新启动selenium。
赵云龙龙
2019/07/11
8560
selenium中的备胎
Python 爬虫(四):Selenium 框架
Selenium 是一个用于测试 Web 应用程序的框架,该框架测试直接在浏览器中运行,就像真实用户操作一样。它支持多种平台:Windows、Linux、Mac,支持多种语言:Python、Perl、PHP、C# 等,支持多种浏览器:Chrome、IE、Firefox、Safari 等。
Python小二
2020/08/18
1.2K0
Python 爬虫(四):Selenium 框架
Selenium入门
查看chrom浏览器的版本,需要下载其对应版本的chrome webdriver.
测试加
2022/03/24
2.9K0
Selenium入门
Selenium 动态爬取51job招聘信息
通过selenium的find_element_by_id 找到 id = 'kwdselectid',然后send_keys('关键字')即可模拟用户输入
py3study
2020/11/03
1.4K1
Selenium 动态爬取51job招聘信息
【爬虫】使用Selenium爬取升学e网通网站的近几年大学录取情况
高考出分后,填志愿前,以为官方的今年的招生计划只在填报志愿时候才出,想着爬下来。当然,那个时候python还没怎么学呢,怎么会爬?(笑) 最近浅得python爬虫,突然就想起来这个没有完成的事情了。
Livinfly
2022/10/26
5660
【爬虫】使用Selenium爬取升学e网通网站的近几年大学录取情况
《手把手带你学爬虫──初级篇》第5课 Selenium WebDriver的用法
Selenium 是一个自动化测试工具,WebDriver是它提供的一套操作浏览器的API,由于WebDriver针对多种编程语言都实现了这些API,因此它可以支持多种编程语言。
GitOPEN
2019/01/29
2.8K0
《手把手带你学爬虫──初级篇》第5课  Selenium WebDriver的用法
爬虫selenium+chromdriver
由于requests模块是一个不完全模拟浏览器行为的模块,只能爬取到网页的HTML文档信息,无法解析和执行CSS、JavaScript代码,因此需要我们做人为判断;
菲宇
2019/06/11
2.4K0
Selenium
Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,类型像我们玩游戏用的按键精灵,可以按指定的命令自动操作,不同是Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器,但是现在谷歌的无头比较火,下面展示谷歌的无头)
HammerZe
2022/05/11
3.3K0
Selenium
一文搞懂浏览器自动化测试框架selenium!
1、selenium是什么? Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Per
石晓文
2018/04/11
1.6K0
无头浏览器Selenium的使用要点
无头浏览器是指可以在图形界面情况下运行的,可以模拟多种浏览器的运行框架。研发可以通过编程来控制该框架执行各种任务,模拟真实的浏览器操作和各种任务,例如登录、js解析、ajax动态生成、获取cookie等。
用户6172015
2021/07/06
2.9K0
selenium用法详解
selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .Net、Java、Perl等不同语言的测试脚本。
顾翔
2019/12/11
1.1K0
selenium用法详解
python爬虫–selenium模块
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/100097.html原文链接:
全栈程序员站长
2021/04/19
7790
Selenium库详解:Python实现模拟登录与反爬限制的进阶指南
Selenium是一个开源的自动化测试框架,广泛应用于Web自动化测试和爬虫开发。它支持多种编程语言(如Python、Java、C#等)和主流浏览器(如Chrome、Firefox、Safari等)。通过Selenium,开发者可以模拟用户的各种操作,例如点击按钮、填写表单、滚动页面等,从而实现对网页的自动化控制。
小白学大数据
2025/02/22
4290
Selenium库详解:Python实现模拟登录与反爬限制的进阶指南
selenium使用
请注意,本文编写于 1727 天前,最后修改于 996 天前,其中某些信息可能已经过时。
曼亚灿
2023/05/17
1.5K0
selenium使用
Selenium+代理爬取需要模拟用户交互的网站
在日常爬虫采集网站的过程中,部分数据价值较高的网站,会限制访客的访问行为。这种时候建议通过登录的方式,获取目标网站的cookie,然后再使用cookie配合代理IP进行数据采集分析。今天我们就介绍下如何使用Selenium库来爬取网页数据,特别是那些需要模拟用户交互的动态网页。
小白学大数据
2023/05/18
3930
网络爬虫 | selenium 爬取动态加载信息
使用selenium实现动态渲染页面的爬取。selenium是浏览器自动测试框架,模拟浏览器,驱动浏览器执行特定的动作,并可获取浏览器当前呈现的页面的源代码,可见即可爬。该工具支持IE浏览器、Mozilla Firefox及Google Chrome等。
数据STUDIO
2021/06/24
1.3K0
相关推荐
Selenium及Headless Ch
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验