替代人工操作,模拟浏览器的“行为”
文章目录
- 一、模拟用户的行为
- 1.1 如果你喜欢偏极客操作
- 1.2 如果你还会前端语言
- 二、模拟系统的接口1.0
- 2.1 前端获取跟服务的交互接口
- 2.2 下载一个postman的工具软件
- 2.3 下面讲授一波骚操作: **复制粘贴大法**
- 三、模拟系统的接口2.0(代码自动生成!!)
前言:如果你接触到的系统是浏览器的形式打开的话,而且你又是经常跟系统做交互的话,那你千万要继续往下看。对于普通用户而言,可能只需要了解人工的交互就行了,不过作为系统背后的工作人员,不管是做前后端开发、测试、运维或其他,如果都是靠着人工的方式去进行操作,那效率肯定是非常低的。举个最近发生小例子最近我开发了一个自动化python工具就帮运维人员足足节省了手动刷数据两三天的时间。
下面我将讲一下几种模拟浏览器行为的思路供大家选择。(按照 由复杂到简单的顺序)
一、模拟用户的行为
用户跟浏览器直接交互无非就是输入网页地址,输入用户,输入密码,输入验证码,点击某些按钮等等
1.1 如果你喜欢偏极客操作
我建议是通过python来实现,借助一些现有的一些库来实现,废话不多说,直接看操作步骤:
安装浏览器驱动扩展(一般我是使用Chrome浏览器),这里需要注意使用对应浏览器版本的扩展 → chrome扩展下载地址
下载后解压,将chromedriver.exe复制到python目录下的Scripts文件夹内这样就可以直接使用,不过我喜欢放在我的浏览器路径下面用的使用再去指定路径,因为有可能电脑安装了多个版本的浏览器这样就做到代码和驱动扩展的
解耦
cmd执行:
python -m pip install selenium
编写python代码,这块涉及的内容就需要根据你们所需要的场景和系统的情况进行对应学习和了解,像获取cookie,防止爬虫检测,验证码图片识别等等,这里我简单编搭个架子供大家参考
from selenium import webdriver import osif __name__ == '__main__':chromedriver = "C:/Users/DreamKite/AppData/Local/Google/Chrome/Application/chromedriver"os.environ["webdriver.chrome.driver"] = chromedriverdriver = webdriver.Chrome(chromedriver) #模拟打开浏览器print('cookies:', driver.get_cookies())driver.get("https://www.baidu.com/") #打开网址driver.maximize_window() #窗口最大化(无关紧要哈)# 做各种找元素、按钮进行点击输入的代码编写~~# driver.quit()```
1.2 如果你还会前端语言
这块就简单了,不过这里可能没法直接跟浏览器交互,需要依附浏览器,不过也问题不大
我们利用浏览器跟系统做交互一般是用到一种动态前端语言,一般是js
这里我简单编搭个架子供大家参考(自动填写密码进行登录)
javascript:(function() {var username = document.getElementById("username");
var pwd = document.getElementById("value");
if(null == username || null == pwd){console.log("no found!!")return;
}
username.value = "DreamKite";
pwd.value = "iamapasswd";
var loginButten = document.getElementById("submitId");
loginButten.click();
})();
这里可能有人就在想,这里放在哪里执行,我理解console也是可以的,这种一般我是做成"插件",通过收藏添加书签的方式(网页形式),这样我只要这么轻轻一点我创建的书签,就可以实现自动输入用户密码登录的操作了~
二、模拟系统的接口1.0
模拟浏览器,其实就利用了前端的代码替代了用户直接跟后端交互,在当前微服务架构比较流行的情况,如果不是涉及非常复杂的前端操作往往我们是可以绕过前台直接跟后台的服务做交互的,我们这里需要用到一点点前端小技巧,也是非常的简单,上操作:
2.1 前端获取跟服务的交互接口
输入网页地址-》F12 -》点击Network-》Fetch/XHR-》F5刷新-》选择跳出来的接口,点击一下这样你就获取到所有该请求的所有信息
如下图:
2.2 下载一个postman的工具软件
比较常规的操作就是新建一个调用请求,然后输入url/header/body,选择接口类型,部分安全要求比较高的还需要进行证书、秘钥的导入(在File→Settings→Certificates),就这么简单
这里需要讲一下为什么使用postman软件而不是用浏览器呢,因为postman的操作更加灵活,而且还能diy(例如加载某个json文件进行接口调用,需要调用,进行性能测试),而且还做到跟浏览器的解耦
2.3 下面讲授一波骚操作: 复制粘贴大法
Ctrl+C:
Ctrl+V:
然后就替代了手动的那些繁琐的操作了,懂的都懂~~
三、模拟系统的接口2.0(代码自动生成!!)
因为大部分场景都是涉及到接口调用,因此有种方法能够实现对接口的入参、header这些能够自动化处理,那就不需要写繁琐的代码去做这种无聊的事情了
步骤一: 同2.3的复制操作
步骤二:上链接:https://curlconverter.com/ , 粘贴
然后代码就来了
上面这种操作非常有效,因为我们通过代码的方式进行可以做到更加灵活,实现更复杂的事情,例如:调用接口获取到的数据重组织去调用另外一个接口等等
个人的话喜欢使用python,因为效率更高,操作也更加灵活~
(以上为DreamKite本人原创,转载请附上原文链接)
以上是我编写开发生活
栏目的第一篇博客,后续还会陆续推出旨在能提高“开发幸福感”的博客,欢迎大家关注我和在评论区进行交流~
替代人工操作,模拟浏览器的“行为”相关推荐
- python模拟浏览器下载文件在哪里_python下selenium模拟浏览器基础操作
1.安装及下载 selenium安装: pip install selenium 即可自动安装selenium geckodriver下载:https://github.com/mozilla/ge ...
- Python爬虫入门5:模拟浏览器访问网站
☞ ░ 前往老猿Python博客 https://blog.csdn.net/LaoYuanPython ░ 一.引言 在前面两节中分别介绍了使用Google浏览器和IE浏览器怎么获取网站访问的htt ...
- python模块学习---mechanize(模拟浏览器)
mechanize是非常合适的模拟浏览器的模块. 它的特点主要有: 1 http,https协议等. 2 简单的HTML表单填写. 3 浏览器历史记录和重载. 4 Referer的HTTP头的正确添加 ...
- python写页面发送post请求_Python模拟浏览器向CSDN发送post请求的方法,POST
目录 1.发送get请求的方法 import requests import json def GET(url): #get请求 req = requests.get(url) #输出状态码 prin ...
- python刷新页面_Python模拟浏览器爬取天猫信息
由于工作需要,需要提取到天猫400个指定商品页面中指定的信息,于是有了这个爬虫.这是一个使用 selenium 爬取天猫商品信息的爬虫,虽然功能单一,但是也算是 selenium 爬虫的基本用法了. ...
- python 模拟浏览器selenium 微信_Spider-Python爬虫之使用Selenium模拟浏览器行为
分析 他的代码比较简单,主要有以下的步骤:使用BeautifulSoup库,打开百度贴吧的首页地址,再解析得到id为new_list标签底下的img标签,最后将img标签的图片保存下来. header ...
- 模拟浏览器的神器 - HtmlUnit
2019独角兽企业重金招聘Python工程师标准>>> 随着Web的发展,RIA越来越多,JavaScript和Complex AJAX Libraries给网络爬虫带来了极大的挑战 ...
- python 模拟浏览器下载文件-python爬虫:使用Selenium模拟浏览器行为
前几天有位微信读者问我一个爬虫的问题,就是在爬去百度贴吧首页的热门动态下面的图片的时候,爬取的图片总是爬取不完整,比首页看到的少.原因他也大概分析了下,就是后面的图片是动态加载的.他的问题就是这部分动 ...
- pythonrequests发送数据_在python中使用requests 模拟浏览器发送请求数据的方法
在python中使用requests 模拟浏览器发送请求数据的方法 如下所示: import requests url='http://####' proxy={'http':'http://#### ...
最新文章
- 黄皓之后,计算机科学上帝Don Knuth仅用一页纸证明布尔函数敏感度猜想
- ORACLE 日期比较
- Windows 2003 主域控和DNS迁移到Windows 2008 R2(1)
- python做电脑软件-作为一个Python程序员,电脑上应该具备哪些软件?
- 实验8.2 指针与字符串 7-2 字符串排序
- 面试收集—hello,world 也有新花样
- 四:Jquery-animate
- 思科路由器Ez×××解决地址重叠测试
- linux系统导航怎么刷安卓系统升级,4s送的10.2寸安卓导航刷机教程1
- yolov3详细讲解
- 如何配置服务器的安全?
- 新手学编程的常见困惑
- 【laravel5.7】第一个Laravel接口之中央气象台天气接口
- int函数使用方法c语言,int函数(int函数的使用方法举例)
- 软著申请模板,帮助了不少小伙伴少走弯路
- 【Android Camera2】玩转图像数据 -- NV21图像旋转,镜像,转rgba代码分析,性能优化
- 利用APPium获取自动浏览获取喵币
- VSS2005配置错误:The Sourcesafe Web service cannot be accessed at the specified address
- SpringReport--报表设计器的使用
- 2017-8-24股票复盘