python爬虫第9天 用爬虫测试网站 远程采集

2023-11-15

网站的前端通常并没 有自动化测试,尽管前端才是整个项目中真正与用户零距离接触的唯一一个部分。

想象有一个由测试驱动的网络开发项目。每天进行测试以保证网络接口的每个环节的功能 都是正常的。每当有新的特性加入网站,或者一个元素的位置改变时,就执行一组自动化 测试


测试

测试和单元测试

虽然不同公司的单元测试定义和实践方法大相径庭,但是一个单元测试通常包含以下 特点。

• 每个单元测试用于测试一个零件(component)功能的一个方面

• 每个单元测试都可以完全独立地运行,一个单元测试需要的所有启动(setup)和卸载 (teardown)都必须通过这个单元测试本身去处理。单元测试不能对其他测试造成干扰, 而且不论按何种顺序排列,它们都必须能够正常地运行。 

• 每个单元测试通常至少包含一个断言(assertion)

• 单元测试与生产代码是分离的


Python单元测试

Python 的单元测试模块 unittest

先导入模块然后 继承 unittest.TestCase 类,就可以实现下面的功能:

• 为每个单元测试的开始和结束提供 setUp 和 tearDown 函数 

• 提供不同类型的“断言”语句让测试成功或失败 

• 把所有以 test_ 开头的函数当作单元测试运行,忽略不带 test_ 的函数


与网站进行交互

就像你可以在浏览器里对网站上的不同元素执行一系列操作一样,Selenium 也可以对任何 给定元素执行很多操作,如下所示:

myElement.click() myElement.click_and_hold() myElement.release() myElement.double_click() myElement.send_keys_to_element("content to enter")


。Selenium 可以轻松地完成鼠标拖放动作(drag-and-drop)


Python单元测试与Selenium单元测试的 选择

Python 的单元测试语法严谨冗长,更适合为大多数大型项目写测试,而 Selenium 的测试方 式灵活且功能强大,可以成为一些网站功能测试的首选。那么应该使用哪个呢?
答案是:不需要选择。Selenium 可以轻易地获取网站的信息,而单元测试可以评估这些信 息是否满足通过测试的条件。因此,你没有理由拒绝把 Selenium 导入 Python 的单元测试, 两者组合是最佳拍档。


分布式计算

PySocks 是一个非常简单的 Python 代理服务器通信模块,它可以和 Tor 配合使用


从网站主机运行 

无论现在还是将来,遇到一个网络数据采集项目时,你都应该问问自己以下几个问题。
• 我需要回答或要解决的问题是什么? • 什么数据可以帮助我,它们都在哪里? • 网站是如何展示数据的?我能准确地识别网站代码中包含信息的部分吗? • 该如何定位这些数据并获取它们? • 为了让数据更实用,我应该做怎样的处理和分析? • 怎样才能让采集过程更好,更快,更稳定



互联网其实就是一个用户界面不太友好的超级 API  !!!!!!!










本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python爬虫第9天 用爬虫测试网站 远程采集 的相关文章

  • selenium用法详解【从入门到实战】【Python爬虫】【4万字】

    跳转文末 获取实战源码与作者联系方式 共同学习进步 文章目录 简介 selenium安装 安装浏览器驱动 确定浏览器版本 下载驱动 定位页面元素 打开指定页面 id 定位 name 定位 class 定位 tag 定位 xpath 定位 c
  • 手把手操作JS逆向爬虫入门(三)---Headers请求头参数加密

    知识点 1 请求头加密参数分析 2 JS base64加密的多个实现方法 目标网站 aHR0cHM6Ly93d3cub2tsaW5rLmNvbS96aC1jbi9idGMvdHgtbGlzdD9saW1pdD0yMCZwYWdlTnVtPT
  • urllib库的使用

    个人简介 作者简介 大家好 我是W chuanqi 一个编程爱好者 个人主页 W chaunqi 支持我 点赞 收藏 留言 愿你我共勉 若身在泥潭 心也在泥潭 则满眼望去均是泥潭 若身在泥潭 而心系鲲鹏 则能见九万里天地 文章目录 urll
  • 代理IP的高匿名,匿名和透明的区别

    如果从隐藏使用代理用户的级别上划分 代理可以分为三种 即高度匿名代理 普通匿名代理和透明代理 1 高度匿名代理不改变客户机的请求 这样在服务器看来就像有个真正的客户浏览器在访问它 这时客户的真实IP是隐藏的 服务器端不会认为我们使用了代理
  • python爬虫爬取使用Ajax请求的网站数据解析——以梅老板微博为例(m.weibo.cn)

    文章目录 前言 什么是Ajax Ajax基本原理 发送请求 解析内容 渲染网页 Ajax分析方法 查看请求 过滤请求 Ajax结果提取 1 分析请求 since id解析 2 分析响应 3 爬取微博数据 后记 前言 前面学习了使用正则表达式
  • 盘点Python爬虫中的常见加密算法,建议收藏!!

    相信大家在数据抓取的时候 会碰到很多加密的参数 例如像是 token sign 等等 今天小编就带着大家来盘点一下数据抓取过程中这些主流的加密算法 它们有什么特征 加密的方式有哪些等等 知道了这些之后对于我们逆向破解这些加密的参数会起到不少
  • Python爬虫和数据分析

    立项 通过此项目爬取天猫 京东商品数据并进行数据分析 目标 通过此项目快速通过掌握数据爬取和数据分析 Step 分析天猫商城iPhone11 销售数据 抓取天猫商城iPhone11 销售数据 抓取京东商城iPhone11 销售数据 数据清洗
  • 使用python爬取英雄联盟官方英雄皮肤图片

    前言 本文的文字及图片来源于网络 仅供学习 交流使用 不具有任何商业用途 版权归原作者所有 如有问题请及时联系我们以作处理 PS 如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群交流解答点击即可
  • Python笔记(基本入门函数)

    第一章 快速上手 基础知识 1 3 x y x x y y 注意求余运算符 向下圆整 如果是负数 则更远离0 10 3 10 3 10 3 10 3 十六进制 0x 八进制 0o 十进制 0b 0xAF 175 0o10 8 0b10110
  • requests请求

    请求方式 requests get 发送get请求 通过params传递参数 requests post 发送post请求 通过json data 传递参数 data 数据报文 dict字典类型 默认情况下请求头为applilcation
  • Python模拟登陆万能法-微博

    Python模拟登陆让不少人伤透脑筋 今天奉上一种万能登陆方法 你无须精通HTML 甚至也无须精通Python 但却能让你成功的进行模拟登陆 本文讲的是登陆所有网站的一种方法 并不局限于微博与知乎 仅用其作为例子来讲解 用到的库有 sele
  • 抓取得物数据出现验证码的解析思路

    原创来自本人的公众号 阿嚏个技术 公众号文章地址 得物采集数据出现geetest验证码的解析方式 本文仅提供反爬技术的分析思路 勿做商业用途 如有侵权 请联系删除 之前写过一篇爬得物数据的文章 毒 得物 APP历史购买数据抓取 阅读数还是挺
  • [Python

    目录 一 问题简介 二 解决方案 1 全局搜索sign 2 文件局部搜索 3 寻找目标函数 4 调用函数 5 补全JS代码 6 token的获取 三 Python代码 1 UI类 2 爬虫逻辑类 四 完整代码 JS代码 Python代码 一
  • python三位数水仙花数(附零基础学习资料)

    前言 所以直接上代码 python输入一个水仙花数 三位数 输出百位十位个位 从控制台输入一个三位数num 如果是水仙花数就打印num是水仙花数 否则打印num不是水仙花数 任务 1 定义变量num用于存放用户输入的数值 2 定义变量gw
  • 淘特app x-sign参数签名分析

    之前看见大佬说淘特app的风控比tb的要小很多 于是学习了下t特的签名分析 一 抓包分析 通过Charles抓包分析 分析请求参数 headers x sgext JAWowlF3DRjHdjoiU 2Flc38K43prxmuGa9Jv3
  • Python进阶之CrawlSpider的应用及Scrapy配置项的引用

    1 CrawlSpider的应用 CrawlSpider可以根据规则自动分析链接的数据并按照正则的要求取出需要的数据 scrajpy startproject yg cd yg 注意 t crawl参数 scrapy genspider t
  • python3爬虫伪装代理IP

    在爬取类似 起点 色魔张大妈 这样的网站时 会被网站看出是爬虫机制 这时需要伪装成浏览器以及使用IP代理的方式来爬去正常内容 实例 import re import requests import urllib request from l
  • python爬虫概述及简单实践

    文章目录 一 先了解用户获取网络数据的方式 二 简单了解网页源代码的组成 1 web基本的编程语言 2 使用浏览器查看网页源代码 三 爬虫概述 1 认识爬虫 2 python爬虫 3 爬虫分类 4 爬虫应用 5 爬虫是一把双刃剑 6 pyt
  • 为什么要学习Python?

    前言 Python 是当今非常流行的编程语言 在互联网上经常可以看到他的身影 它应用非常广泛 例如编程 Web 开发 机器学习和 数据科学Q 等 TIOBE 官网近日公布了 2023 年 8 月的编程语言排行榜 Python 依然排行第一
  • Python采集猎聘网站招聘数据内容,看看现在职位风向

    嗨喽 大家好呀 这里是爱看美女的茜茜呐 环境使用 Python 3 10 Pycharm 模块使用 第三方模块 需安装 requests gt pip install requests pandas gt pip install panda

随机推荐

  • QAnimation的介绍

    QAnimation的介绍 QAnimation是Qt框架中提供的一个动画类 用于实现GUI控件的各种动画效果 可以通过QAnimation实现如平移 旋转 缩放等动态效果 同时还支持动态添加或删除控件等操作 基本用法 创建和启动动画 通过
  • Libsvm:脚本(subset.py、grid.py、checkdata.py)

    1 脚本 This directory includes some useful codes 1 subset selection tools 子集抽取工具 subset py 2 parameter selection tools 参数选
  • c#基础之WPF

    学习平台 微软开发者博客 DevBlogs Microsoft Developer Blogs 微软文档与学习 Microsoft Learn 培养开拓职业生涯新机遇的技能 微软开发者平台 Microsoft Developer WPF基础
  • Java-String类

    Java String类 1 概述 String 字符串 使用一对 引起来表示 String声明为final的 不可被继承 String实现了Serializable接口 表示字符串是支持序列化的 实现了Comparable接口 表示Str
  • Iptables封禁IP,记录地址

    前言 前段时间开了台国外的vps 以前机房的物理防火墙有十年网工大佬维护 我们对外访问的nginx上就没遇到过这种攻击 毕竟有问题的IP全被防火墙那层直接拦截了 而我这通过安全组把其中2个web端口放开了所有网段 而nginx再限制网段 导
  • 疫情日记(01)

    时间 2022年12月16日15 01 14 天气 阴天 地点 西安 12月8日全面放开以来 确诊这个词语也再是谈之色变了 似乎一旦 规定 疫情没有了 就真的没有了一样 两天前知道了ljc可能是确诊了 再后来就是办公室两个小兄弟 jc和qy
  • FAT文件系统初识

    最近在阅读 现代操作系统 的时候看到了fat32系统的讲解 在这里记录一下 我觉得fat32文件系统首先是基于链表分配的机制的 首先有一个基础知识 就是文件是由一系列的块组成的 想要访问完整的文件 就必须知道这个文件的所有的块的位置 链表分
  • Unity3d C#使用XCharts数据显示格式说明(如:数据类型、数据显示为百分比%等)

    前言 XCharts是开源且比较强大的插件 在Unity3d中搭建UI时常常使用的数据图表的制作插件 特别是当下的数字沙盘 数字孪生等项目中应用较广 笔者公司也一直在使用该插件 本文主要是在开发过程中的一个小需求引发的整理分享 在项目中需要
  • 前端自动化测试精讲

    单元测试 端对端测试 持续集成方案 在项目中落地前端自动化测试 作者介绍 祯民 字节跳动前端开发工程师 掘金小册 SSR实战 官网开发指南 作者 公众号 祯民讲前端 作者 曾负责 抖音前端技术团队官网 和 字节官网中文版 的开发 现维护抖音
  • git撤销加入暂存区(git add)的文件

    直接使用git reset加对应的文件或 来撤销 这个命令可以理解为git add的反向操作 可以撤销单个文件 也可批量 如 git reset xxx xxx xxx 或 git reset
  • C语言常见问题——++i与i++详解

    目录 一 i与i 1 引例 2 i i i 与 i i i 3 总结 二 函数中的 1 printf中的 2 作为函数的参数 3 总结 一 i与i 1 引例 对于如下程序 其输出结果是什么 include
  • 《算法导论》15章-动态规划 15.1 钢条切割(含有C++代码)

    一 引入 动态规划方法通常用来求解最优化问题 optimizationproblem 这类问题可以有很多可行解 每个解都有一个值 我们希望寻找具有最优值 最小值或最大值 的解 我们称这样的解为问 题的一个最优解 an optimal sol
  • 蓝桥杯2023年第十四届省赛真题python A组 (个人的做题记录,没有全对,可以通过部分测试点)

    试题 A 特殊日期 本题总分 5 分 问题描述 记一个日期为 yy 年 mm 月 dd 日 统计从 2000 年 1 月 1 日到 2000000 年 1 月 1 日 有多少个日期满足年份 yy 是月份 mm 的倍数 同时也是 dd 的倍数
  • 【ElasticSearch(五)进阶】两种_search检索方式,match_all检索,Query DSL基本使用...

    ElasticSearch 五 进阶 两种 search检索方式 match all检索 Query DSL基本使用 一 导入测试数据 ElasticSearch官方为我们准备了一部分测试数据供调试使用 我们可以Kinaba内进行数据导入处
  • SSH 整合Swagger2

    之前用的是springboot整合swagger2 新公司这边的系统是之前开发的 用的是SSH框架 这里记录一下 整合过程 以及遇到的坑 1 导入依赖
  • 华为OD机试 - 字符串分隔(C++ & Java & JS & Python)

    目录 描述 输入描述 输出描述 示例1 C 实现 Java实现 python实现 描
  • 如何提高oracle数据库的性能,关于提高Oracle数据库性能的四个误区

    为了提高性能 我们针对Oracle数据库本身提供了的方法或方案进行过不少的尝试 主要包括 共享服务器模式 MTS 集群技术 Clustering RAC 分区 并行处理 主要是并行查询 Oracle提供的这些特性确实是用来进行性能改善的 但
  • iOS证书申请打包上传App Store审核完整流程(7个步骤)

    上架基本需求资料 1 苹果开发者账号 2 开发好的APP 通过本篇教程 可以学习到ios证书申请和打包ipa上传到appstoreconnect apple com进行TestFlight测试然后提交审核的完整流程 上架App Store审
  • Golang JSON-序列化map,切片(slice),结构体(struct)

    package main import encoding json fmt func mapJson testMap make map string interface testMap name typ testMap age 123 te
  • python爬虫第9天 用爬虫测试网站 远程采集

    网站的前端通常并没 有自动化测试 尽管前端才是整个项目中真正与用户零距离接触的唯一一个部分 想象有一个由测试驱动的网络开发项目 每天进行测试以保证网络接口的每个环节的功能 都是正常的 每当有新的特性加入网站 或者一个元素的位置改变时 就执行