PYTHON SELENIUM的学习笔记
1
trg = driver.find_element_by_xpath(’//*[@id=“jb”]/div[2]’)
上句中的XPATH语句是从chrome的F12中直接右键目标得到的。以后可以作为参考样例。
2
ele = WebDriverWait(driver,20,0.2).until(ec.text_to_be_present_in_element((By.XPATH,"//td[@class=‘t1’]"),u’字典搜索’))
这个语句能正常工作,然而屏蔽掉它程序依然可以正常操作,真的需要吗?等报错再用吧。
3
st = strs.splitlines() 这个语句是split()函数的多行版,很好用哦!可以自动将内嵌多行的string分解成列表。
4 火狐无头浏览器的设置
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.support.ui import WebDriverWait #非无头设置的必须
from selenium.webdriver.common.by import By #非无头设置的必须
op = webdriver.FirefoxOptions()
op.add_argument("–headless") #等效于 ———— op.set_headless()
op.add_argument("–disable-gpu") #禁用GPU加速
driver = webdriver.Firefox(firefox_options = op)
driver.get(address)
以上是火狐无头浏览器设置。
要记得火狐的无头浏览器名称是:geckodriver.exe 一定要记得下载合适的版本并将其放置在:C:\Users\mlong\AppData\Local\Programs\Python\Python37\Scripts文件夹下(随个人设置而不同)。
5
import time
start = time.clock()
end = time.clock()
print(end-start)
以上可以用来测试程序某段的运行时间。time.time()也可以。
6
with open(“cww.txt”,“a”,encoding=“utf-8”) as f:
以上用来打开文件不需要最后调用close()函数。优先使用。
7
模式 可做操作 若文件不存在 是否覆盖
r 只能读 报错 -
r+ 可读可写 报错 是
w 只能写 创建 是
w+ 可读可写 创建 是
a 只能写 创建 否,追加写
a+ 可读可写 创建 否,追加写
8
str.replace(‘~’,strs) 用前面的参数替换后面的字符串里面的所有字符。
9
string.punctuation 是python内置的标点符号的合集
10
t = t.translate(str.maketrans(’’,’’,‘s’))查找并干掉字符串t里面的所有指定字符s
11
if re.match(r"[\u4e00-\u9fa5]",strs): 如果strs是汉字字符那么。。。。。。
12
handles = driver.window_handles
for t in handles:
print(t)
以上获取全部窗口句柄
13
driver.execute_script(‘arguments[0].scrollIntoView();’,trg)
以上将选定的元素(trg)定位到屏幕中间。
14 网摘笔记
以百库文库为例(https://wenku.baidu.com/view/217d303c76eeaeaad0f33075.html),较大的文档的展示一般是通过分页展示,并且每一页的内容不会全部加载,要在浏览到当前页才会加载当前几页的内容。像这个文档,一次显示五十页,但是只会加载当前浏览进度处的三叶内容。因此要自动抓取这个内容需要实现滚动功能。
selenium有两种滚动方式:
第一种,滚动到特定位置“:
driver.execute_script(‘var q=document.body.scrollTop=3500’) 滚动到页面的3500像素处(从上往下)(通过网页审查可以看到整个网页的像素大小) 第二种,以当前位置为参照,滚动一定距离: driver.execute_script(‘window.scrollBy(0, 1000)’) 从当前位置向下滚动1000像素。第三种,定位到特定的元素:element = driver.find_element_by_xpath("//span[@class=‘fc2e’]") 先找到特定的web元素(与beautifulsoup中的元素概念不同)。driver.execute_script(‘arguments[0].scrollIntoView();’,element) 把特定的元素滚动到页面的顶部/底部,但不一定能被点击到。实现点击: element.click()值得注意的是:目标元素经常会被一些内容遮挡,另外注意设置等待时间。网页的解析还是使用beautifulsoup:html = driver.page_source bf1 = BeautifulSoup(html, ‘lxml’) result = bf1.find_all(class_=‘ie-fix’) for each_result in result: for singlecell in each_result.find_all(‘p’): if ‘left:907px’ in str(singlecell[‘style’]): f.write(’/n’) f.write(singlecell.string+’#’)
11.1.使用JavaScript操作页面元素
#构造JavaScript查找百度首页的搜索输入框的代码字符串: searchImputBoxJS = “document.getElementById(‘kw’).value = ‘你的意义’;”
#构造JavaScript查找百度首页的搜索按钮代码字符串:searchButtonJS = “document.getElementById(‘su’).click()”
11.2.操作Web页面的滚动条
#使用javaScript的scrollTo函数和document.body.scrollHeight参数
#将页面的滚动条滑动到页面的最下方:self.driver.execute_script(“window.scrollTo(100, document.body.scrollHeight);”)
#使用JavaScript的scrollIntoView函数将被遮挡的元素滚动到可见屏幕上
#scrollIntView(true)表示将元素滚动屏幕中间
#scrollView(false)表示将元素滚动到屏幕底部
self.driver.execute_script(“document.getElementById(‘choice’).scrollIntoView(true);”)
#使用JavaScript的scrollBy方法,使用0和400横纵坐标参数
15 解决’\ufeff’
当用以下语句读TXT文件时会遇到首字是预期之外的’\ufeff’时候…
with open(‘linshiaaa.txt’,‘r’,encoding=“UTF-8”) as f:
解决方法很简单,只要把字符编码改成这样:
encoding = “UTF-8-sig”
16 有序地分割字符串
tdict[tx[i].split(’,’)[0]] = tx[i].split(’,’)[1][:-1]
嗯,这玩意就是用的split将字符串有序分割成为字典的。
17 理解__main__
'''if __name__ == '__main__'的意思是:当.py文件被直接运行时,
if __name__ == '__main__'之下的代码块将被运行;
当.py文件以模块形式被导入时,if __name__ == '__main__'之下的代码块不被运行。'''
18 重启脚本程序
import os
import sys
def restart_program():python = sys.executableos.execl(python, python, * sys.argv)
使用中确实可以重启脚本,但是貌似会出很多意外,不是什么程序都可以用它。
懒汉伸手之删除所有非中英文字符
day = re.sub('[^\w\u4e00-\u9fff]+', "", time.strftime("%F"))
PYTHON SELENIUM的学习笔记相关推荐
- Python+Selenium自动化学习笔记一
1.打开浏览器 # 自动化初体验 打开Chrome浏览器,打开淘宝首页 from selenium import webdriver #安装浏览器驱动url = 'https://www.taobao ...
- Python+selenium自动化学习笔记(一)
第一个testcase涉及到的知识内容: """这里学习内容: 如何唤起浏览器 打开指定网址 刷新页面的方法refresh() 查找指定的元素 模拟键盘输入文本并进行回车 ...
- python+selenium个人学习笔记10-调用JavaScript和截图
调用JavaScript和截图 一.调用JavaScript 1.调整浏览器滚动条位置 window.scrollTo(0,500); #左边距,上边距 2.用execute_script()执行Ja ...
- python嵩天课堂笔记_[Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周)
[Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) [Python机器学习]强化学习笔记(嵩天礼欣老师mooc第三周) 目录 强化学习 定义 马尔科夫决策过程 基本元素 值函数 最优值 ...
- Python基础语法学习笔记
Python基础语法学习笔记 想淘宝省钱看我简介,博客www.liangxin.name (一) 一.Print()函数 1.数字可以直接输出,无需加引号 只能理解数字,却读不懂文字.因为数字和数学运 ...
- python基础入门学习笔记 (2)
python基础入门学习笔记 2021年2月8日 1 编译器和解释器的区别 编译器/解释器:高级语言与机器之间的翻译官 2 值传递: print "a = ",a print &q ...
- 关于Python的一些学习笔记(小白式笔记,持续更新)
关于Python的一些学习笔记 瞎bb: 作为一个计算机专业的学生,Python应该是一门很有必要掌握的语言,但是由于鄙人太懒,一直对Python没有太多了解,但是随着知识的积累以及学业难度的增加,我 ...
- Python 基础知识学习笔记——NumPy
Python基础知识学习笔记--NumPy 与 matlab 优秀的矩阵运算类似,python 提供了 numpy 库,这对熟悉 matlab 的用户来说非常友好.向量.矩阵和多维数组是数值计算中必不 ...
- Python 基础知识学习笔记——OpenCV(1)
Python 基础知识学习笔记--OpenCV(1) OpenCV是一个开源的跨平台计算机视觉和机器学习软件库,它轻量而且高效,被广泛的使用. 整理一下OpenCV学习笔记,以防忘记. 文章目录 Py ...
最新文章
- 渗透测试辅助工具--在线版
- python 从尾到头打印链表
- 实例3:按部门统计工资人数
- 在Windows笔记本上调试运行在iOS设备上的前端应用
- 凡人修仙传显示无法连接服务器,《凡人修仙传》网络异常及橙色BOSS补偿说明...
- FreeEIM 小插件 dwzjzx v2.1001 2013 下载
- IIS6/IIS7无法打开IIS管理器的解决方法。
- python selenium下载图片_selenium下载图片(原图)
- 光纤带光缆的特点及应用场景
- Java的ActiveX控件_注册ActiveX控件的几种方法 - 镜花水月 - JavaEye技术网站
- mac 外接键盘让 Home End 键生效
- 韩昊 20190919-6 四则运算试题生成,结对
- 省市县三级菜单联动,含显示默认城市,只显示默认省
- 虚拟偶像主播的大致现状,数字人技术现状
- 网易大数据面试题试解
- C语言控制和鼠标键盘 (windows环境)
- 【已解决】CSDN无法粘贴图片、截图 或者 上传图片一直显示失败
- Ajax请求的五大步骤——一看就会
- toString方法和String方法
- win10html5无法播放,Win10网页视频无法播放提示启用adobe flash player
热门文章
- 彻底搞懂Python切片操作_xing2516_新浪博客
- 苹果5壁纸_元气壁纸软件-元气壁纸安卓版下载v1.0.2
- PDF无法打印 提示输入文件名
- 看看人家用三天写出来的完整项目,直接惊艳了面试官!
- 机器学习_深度学习毕设题目汇总——人脸A
- 爬虫实战(一)利用scrapy爬取豆瓣华语电影
- Python爬虫之模拟登录豆瓣获取最近看过的电影
- 基于多目标灰狼算法的冷热电综合三联供微网低碳经济
- php股票波动率计算公式,因子选股系列:波动率因子的改进,异质波动率
- 递推算法:繁殖问题(昆虫)