python selenium 进入新标签页_Python 爬虫 | 用selenium实现批改网的自动翻译
今天我们用selenium+chrome来自动写入批改网的作业,老师为了让我们认真的写作业会把复制粘贴的功能给锁了,但这怎么可能难得倒我们学程序的呢,看我写程序自动帮忙写入
目录:
1、准备环境
2、分析需求
3、实现功能
1、准备环境
python:python3.7.3
首先要确保安装好selenium库和对应浏览器的驱动,若没有安装可以参考前面的文章——爬虫开发环境部署
2、分析需求
3、功能实现
对着需求我们一步步实现
一、登陆
第一步:输入账号密码
第二步:点击登陆
账号在id为userName的input标签
密码在id为password的input标签
登陆在class为loginBtn的button标签
def log_in():"""输入用户名和密码并登录"""browser.get(url)# 输入邮箱browser.find_element_by_id('userName').send_keys(email) # //*[@id="userName"]# 输入密码browser.find_element_by_id('password').send_keys(password) # //*[@id="password"]# 点击查找作业browser.find_element_by_class_name('loginBtn').click()# //*[@id="searchRegId"]/form/div[3]/buttonfind_work()
二、查找作业
第一步:输入作业页号
第二步:点击查找
这里需要先清空输入作业号的输入框,不然“请输入作业号”这几个字不会消失
输入作业号在name为rid的input标签
先调用clear()清空输入框,在调用send_keys()输入作业号
查找作文按钮在class为sf_bt的button标签
调用click()点击按钮
def find_work():"""进入未完成的作业"""# 作业号input_num = browser.find_element_by_name('rid') input_num.clear()input_num.send_keys(work_num)# 查找作业 //*[@id="searchRegId"]/form/div[3]/buttonbrowser.find_element_by_class_name('sf_bt').click()
三、获取原文
这里以000001号作业为例
这里选择使用XPath提取文本
传入的content为网页源码,regex为XPath规则,返回目标文本
def get_page(content, regex):"""获取翻译原文"""etree = html.etreea = etree.HTML(content)test = a.xpath(regex)return test
四、翻译原文
这里选择把文本传入谷歌翻译
text = get_page(content, text_regex) # 得到原文
google_url = 'https://translate.google.cn/#view=home&op=translate&sl=auto&tl=en&text=%s' % text[0]
switch_the_window(google_url, 1) # 创一个新的选项卡
content = browser.page_source
谷歌翻译的url中有个参数就是需要翻译的文本,所以直接将文本加入url中就好了,将url传入方法switch_the_window()中,这个方法是用来打开一个新的页面的,为的是获取译文
def switch_the_window(url=None, num=None):"""为谷歌翻译打开新的一个选项卡"""if url:browser.execute_script('window.open()')browser.switch_to.window(browser.window_handles[num])if url:browser.get(url)
五、输入译文
正文输入框在id为contents的textarea标签
def input_text(text):"""将译文写进批改网"""# //*[@id="contents"]input_content = browser.find_element_by_id('contents')input_content.clear()input_content.send_keys(text)
最后一步提交作业
提交按钮在class为d3的a标签
def submit():"""提交作业"""button = browser.find_element_by_class_name('d3')button.click()
python selenium 进入新标签页_Python 爬虫 | 用selenium实现批改网的自动翻译相关推荐
- python selenium 进入新标签页_python 爬虫之selenium可视化爬虫
文章目录 前文回顾 快速入门 元素定位 页面操作 等待方式 扩展程序加载 点击此处,获取海量Python学习资料! 之所以把selenium爬虫称之为可视化爬虫 主要是相较于前面所提到的几种网页解析的 ...
- python打开谷歌浏览器新标签页_【Python】爬虫系列 | 3、谷歌浏览器的基本使用...
你要问程序员最喜欢的浏览器是什么? 基本都会说当然是谷歌浏览器,它完全遵守了W3C的标准,是最最最受程序员欢迎的浏览器 其次火狐浏览器,安全性高.可以作为备用浏览器. Edge是微软最新发布的浏览器, ...
- python 模拟用户点击浏览器_python爬虫之selenium模拟浏览器
1.前言 之前在异步加载(AJAX)网页爬虫的时候提到过,爬取这种ajax技术的网页有两种办法:一种就是通过浏览器审查元素找到包含所需信息网页的真实地址,另一种就是通过selenium模拟浏览器的方法 ...
- python爬取虎扑评论_python爬虫系列Selenium定向爬取虎扑篮球图片详解
前言: 作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队.CBA明星.花边新闻.球鞋美女等等,如果一张张右键另存为的话真是手都点疼了.作为程序员 ...
- python网络爬虫系列(七)——selenium的介绍 selenium定位获取标签对象并提取数据 selenium的其它使用方法
一.selenium的介绍 知识点: 了解 selenium的工作原理 了解 selenium以及chromedriver的安装 掌握 标签对象click点击以及send_keys输入 1. sele ...
- 采集练习(六) python获得chrome扩展 微度新标签页 下的云壁纸
采集分析见 采集练习(五) php 获得chrome扩展 微度新标签页 下的云壁纸(主要是美女壁纸) 以下是用python 实现同样的功能. python 版本 2.73 以下是代码: # -*- c ...
- [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)
欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...
- $state 新标签页
2019独角兽企业重金招聘Python工程师标准>>> 使用$state.go跳转时,会覆盖当前新页面.如果需要打开新标签页,可以这么做: $state.go("app.s ...
- 始终在新标签页中打开文件
本文翻译自:Open files always in a new tab I am using Visual Studio Code 1.3.1 with the newly introduced t ...
最新文章
- 经典算法题每日演练——第二十二题 奇偶排序
- 2014Esri国际用户大会ArcGIS Online
- wpf项目源代码_C# WPF开源控件库:MahApps.Metro
- 表单校验---struts2
- 用java实现楼层导航_JS实现网站楼层导航效果代码实例
- nginx配置文件中参数的作用
- js解析java对象数组_js接收并转化Java中的数组对象的方法
- 作为现代计算机理论的基础的,作为现代计算机理论基础的冯·诺依曼原理和思想是()。...
- RADIO控件变量添加
- testng_TestNG注释
- 马化腾亲身分享:腾讯兵法教你做一款高口碑的产品
- 2018下半年初级程序员考试时间
- 教学设计和反思高中计算机,高中信息技术教学反思
- Footprint Analytics:多角度理解Layer 2生态:概念、扩容方案及代表项目
- Hulu机器学习问题与解答系列 | 二十九:WGANs:抓住低维的幽灵
- Summery about show input info bar of MTK
- 【合新通信】SFP GPON ONU Stick With MAC
- java获取生僻字_生僻字与16进制的转换
- PostgreSQL t_bits计算方法
- 19_09_13 关于c语言中位域的理解