今天我们用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实现批改网的自动翻译相关推荐

  1. python selenium 进入新标签页_python 爬虫之selenium可视化爬虫

    文章目录 前文回顾 快速入门 元素定位 页面操作 等待方式 扩展程序加载 点击此处,获取海量Python学习资料! 之所以把selenium爬虫称之为可视化爬虫 主要是相较于前面所提到的几种网页解析的 ...

  2. python打开谷歌浏览器新标签页_【Python】爬虫系列 | 3、谷歌浏览器的基本使用...

    你要问程序员最喜欢的浏览器是什么? 基本都会说当然是谷歌浏览器,它完全遵守了W3C的标准,是最最最受程序员欢迎的浏览器 其次火狐浏览器,安全性高.可以作为备用浏览器. Edge是微软最新发布的浏览器, ...

  3. python 模拟用户点击浏览器_python爬虫之selenium模拟浏览器

    1.前言 之前在异步加载(AJAX)网页爬虫的时候提到过,爬取这种ajax技术的网页有两种办法:一种就是通过浏览器审查元素找到包含所需信息网页的真实地址,另一种就是通过selenium模拟浏览器的方法 ...

  4. python爬取虎扑评论_python爬虫系列Selenium定向爬取虎扑篮球图片详解

    前言: 作为一名从小就看篮球的球迷,会经常逛虎扑篮球及湿乎乎等论坛,在论坛里面会存在很多精美图片,包括NBA球队.CBA明星.花边新闻.球鞋美女等等,如果一张张右键另存为的话真是手都点疼了.作为程序员 ...

  5. python网络爬虫系列(七)——selenium的介绍 selenium定位获取标签对象并提取数据 selenium的其它使用方法

    一.selenium的介绍 知识点: 了解 selenium的工作原理 了解 selenium以及chromedriver的安装 掌握 标签对象click点击以及send_keys输入 1. sele ...

  6. 采集练习(六) python获得chrome扩展 微度新标签页 下的云壁纸

    采集分析见 采集练习(五) php 获得chrome扩展 微度新标签页 下的云壁纸(主要是美女壁纸) 以下是用python 实现同样的功能. python 版本 2.73 以下是代码: # -*- c ...

  7. [Python从零到壹] 九.网络爬虫之Selenium基础技术万字详解(定位元素、常用方法、键盘鼠标操作)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  8. $state 新标签页

    2019独角兽企业重金招聘Python工程师标准>>> 使用$state.go跳转时,会覆盖当前新页面.如果需要打开新标签页,可以这么做: $state.go("app.s ...

  9. 始终在新标签页中打开文件

    本文翻译自:Open files always in a new tab I am using Visual Studio Code 1.3.1 with the newly introduced t ...

最新文章

  1. 经典算法题每日演练——第二十二题 奇偶排序
  2. 2014Esri国际用户大会ArcGIS Online
  3. wpf项目源代码_C# WPF开源控件库:MahApps.Metro
  4. 表单校验---struts2
  5. 用java实现楼层导航_JS实现网站楼层导航效果代码实例
  6. nginx配置文件中参数的作用
  7. js解析java对象数组_js接收并转化Java中的数组对象的方法
  8. 作为现代计算机理论的基础的,作为现代计算机理论基础的冯·诺依曼原理和思想是()。...
  9. RADIO控件变量添加
  10. testng_TestNG注释
  11. 马化腾亲身分享:腾讯兵法教你做一款高口碑的产品
  12. 2018下半年初级程序员考试时间
  13. 教学设计和反思高中计算机,高中信息技术教学反思
  14. Footprint Analytics:多角度理解Layer 2生态:概念、扩容方案及代表项目
  15. Hulu机器学习问题与解答系列 | 二十九:WGANs:抓住低维的幽灵
  16. Summery about show input info bar of MTK
  17. 【合新通信】SFP GPON ONU Stick With MAC
  18. java获取生僻字_生僻字与16进制的转换
  19. PostgreSQL t_bits计算方法
  20. 19_09_13 关于c语言中位域的理解

热门文章

  1. 关于outlook 2003 PST文件大小一点说明
  2. 2019-4-25 html学习笔记
  3. dubbo相关的知识点总结
  4. python模块--Beautifulsoup
  5. 开发者欣慰:苹果表软件圣诞表现不错
  6. 如何提取cocos iOS应用程序APP与游戏安装包里的资源与文件
  7. IOS之UITabBarController
  8. 三种方式实现自定义圆形进度条ProgressBar
  9. 【使用Java编写的B*算法】
  10. 学python对学c++有帮助吗_2020,你该学习Python还是C++