- 博客(121)
- 收藏
- 关注
原创 与时代共进退
当时我心里想着,虽然进入像腾讯和阿里这样的大厂对于我们这样的双非学校学生可能有些遥远,但我并不想放弃。程序员在AI技术的发展中扮演着关键的角色,他们负责设计、开发和维护这些系统,同时解决复杂的问题和处理非结构化的数据。我相信,只要我们努力学习和提升自己的技能,抓住任何机会展示自己的能力,就有可能实现自己的职业目标。”谁知道,我刚入门的那天,电脑却故障了,我只能用巨大的打字机来编程。所以,无论我们来自哪个学校,无论我们的背景如何,只要我们保持努力和积极进取的态度,我们都有机会在计算机行业中取得成功。
2023-12-06 19:49:32
214
2
原创 探索Selenium的规避检测策略
本篇博客重点介绍了Selenium在规避检测方面的应用。在当今网络环境中,越来越多的网站采取了反爬虫机制,使得爬取数据变得更加困难。然而,Selenium作为一种强大的Web自动化工具,可以模拟用户行为,有效规避常见的检测技术。
2023-12-05 21:27:02
1592
1
原创 获取网络ppt资源
本篇博客将介绍如何使用爬虫技术来免费获取百度文库收费PPT的方法。百度文库上有许多精彩的PPT资源,但大多数需要付费才能下载。对于那些希望以免费方式获取所需资源的用户来说,这篇博客将为他们提供解决方案。通过使用Python的爬虫技术和相关工具,我们可以自动化地获取这些收费PPT,无需支付任何费用。在博客中,将介绍爬取网页内容、提取目标链接以及下载PPT的具体步骤。此外,还会强调合法性和道德准则的重要性,确保我们在使用爬虫技术时遵守法律和尊重版权。
2023-12-05 21:23:06
3240
7
原创 无头浏览器与Selenium:探索无界爬虫的奇妙世界
本篇博客将介绍无头浏览器与Selenium模块的使用,以及它们在实战案例中的应用。无头浏览器是一种不显示图形界面的浏览器,它在后台运行,可以模拟用户的行为与浏览器交互,实现自动化操作和数据爬取。Selenium是一个强大的Web自动化工具,可以与无头浏览器结合使用,提供了丰富的API来控制浏览器的行为和获取页面内容。通过使用无头浏览器和Selenium,我们可以避免被网站的反爬虫机制检测,执行JavaScript代码,处理动态页面,以及处理登录、验证码等复杂情况。
2023-12-04 20:42:57
1066
原创 使用Selenium模拟登录xx小说网后获取相关数据
如果iframe有唯一的名称或ID,最好使用名称或ID来切换到iframe。如果存在多个iframe并且可以根据其在页面中的位置来区分,可以使用索引来切换到特定的iframe。如果已经通过其他方式定位到了iframe的WebElement对象,可以直接使用该对象来切换到iframe。2.通过名称或ID:如果iframe具有名称或ID属性,可以通过名称或ID来切换到该iframe。如果已经定位到iframe的WebElement对象,可以直接使用该对象来切换到该iframe。仅供学习参考,请勿用于数据获取。
2023-12-04 20:36:08
518
原创 Python协程技术:从Greenlet到async/await的异步编程探索
本篇博客深入讨论了Python中的协程技术,以及使用不同工具和语法实现协程的方法。首先,我们介绍了Greenlet和yield,解释了协程的基本概念和原理,并展示了手动切换上下文以实现协程交替执行的案例。接下来,我们引入了Python标准库的asyncio模块,展示了如何使用其中的协程和事件循环来实现并发和异步操作。最后,我们探讨了Python 3.5版本引入的async/await关键字,展示了如何使用它们来定义和调度协程,以实现简洁高效的异步编程。
2023-11-30 18:15:11
488
1
原创 构建个人代理池:使用GitHub项目proxy_pool的搭建配置及代码接口详解
本博客将详细介绍如何使用GitHub上的开源项目proxy_pool构建个人代理池。我们将解释proxy_pool的原理和功能,并提供逐步指导,帮助您完成代理池的搭建和配置。您将学习如何安装和配置代理池的依赖项,启动代理池服务,管理代理IP资源,并使用代码接口进行代理IP的获取和使用。通过构建个人代理池,您将获得稳定可靠的代理IP资源,提升爬虫、数据采集或其他网络应用的效率和稳定性。
2023-11-30 17:48:23
2765
原创 爬虫代理技术与构建本地代理池的实践
本博客将介绍爬虫开发中常用的代理技术,并深入探讨代理IP的基础知识。我们将讨论为何在爬虫中使用代理,以及代理服务器的作用和类型。随后,我们将介绍如何构建一个本地代理池,以便在爬虫过程中动态管理和使用代理IP。我们将分享相关的代码示例,涵盖代理池的搭建、代理IP的获取和验证,以及如何在爬虫程序中使用代理IP。通过本文,您将深入了解爬虫代理技术的重要性,掌握构建本地代理池的实践方法,并在实际开发中提升爬虫的稳定性和效率。无论您是初学者还是有一定经验的开发者,本文都将为您提供有价值的指导和实用的代码示例。
2023-11-29 22:32:34
1160
原创 入门指南:Vue的安装配置和开发环境设置
本文将带您步骤-by-步骤了解Vue框架的安装配置和开发环境设置。首先,我们将介绍Vue的简介,包括其特点和用途。然后,我们将详细说明如何安装Vue,并提供不同安装方法的比较和选择建议。接下来,我们将探讨如何配置Vue的开发环境,包括编辑器和开发工具的选择、项目初始化和基本配置。通过本文,您将获得开始使用Vue的基本知识和技巧,为您的Vue开发之旅奠定坚实的基础。
2023-11-29 20:26:05
585
1
原创 软件工程理论与实践 (吕云翔)第十四章 软件维护与软件工程管理课后习题与解析
小组结构可以将开发人员划分为不同的职能组,如需求分析组、设计组、编码组和测试组,每个组专注于自己的任务,并按照瀑布模型的阶段顺序进行工作。它通过对软件配置项的标识、控制、记录和审计,管理软件系统的变更和版本,以满足软件开发和维护的需求。(12)适应性维护是在软件使用过程中,用户会对软件提出新的功能和性能要求,为了满足这些新的要求而对软件进行修改,使之在功能和性能上得到完善和增强的活动。软件质量的定义:软件质量是指软件产品或系统在满足特定需求的同时,具备良好的性能、可靠性、可维护性、安全性等特征的程度。
2023-11-27 19:43:08
2508
9
原创 使用Selenium、Python和图鉴打码平台实现B站登录
本文介绍了如何使用Selenium和图鉴打码平台来实现B站登录。首先,通过Selenium库自动化控制浏览器,打开B站登录页面并输入用户名和密码。然后,使用图鉴打码平台提供的验证码识别服务,自动识别并填写登录页面的验证码。最后,通过点击登录按钮完成登录过程,实现了自动化登录B站的功能。本文提供了具体的代码示例和步骤说明,帮助读者快速理解和实现这一功能。
2023-11-26 20:38:21
890
原创 x大网校登录接口js逆向分析
牛啊,我第一次发现还有闭包这个东西,我感觉这个闭包的意思的端点执行前的数据。然后取消XHR端点,改password哪一行打上断点。模拟登录,得到token值,才能对内部数据进行解析。一个验证码,一个密码加密,一个用户名。我说的没错,他断住了。
2023-11-26 18:44:44
168
原创 深入解析Selenium动作链:精通点击、拖拽、切换等操作
本篇博客将深入解析Selenium中的动作链(ActionChains),重点介绍了各种常用的操作,如点击、拖拽、切换等。动作链是一种将多个操作组合在一起执行的强大工具,能够模拟真实用户的交互行为。通过学习本文,您将掌握如何在Selenium中使用动作链来实现精确的操作,提高自动化测试的准确性和稳定性。
2023-11-25 14:09:37
2750
原创 Selenium技巧大揭秘:动态数据、分页和Cookie的获取利器
这篇博客中,我们将揭示使用Selenium进行动态数据获取、分页数据提取和Cookie获取的关键技巧。通过Selenium的强大功能,我们可以轻松应对动态加载的网页内容,实现数据的实时抓取和处理。我们将深入探讨如何使用Selenium的等待机制和页面切换技巧来获取动态加载的数据,以及如何模拟用户操作来获取分页数据。此外,我们还将介绍如何利用Selenium获取和管理网页的Cookie信息,以实现用户身份验证和会话管理。
2023-11-25 13:15:39
401
1
原创 JavaScript字符串操作指南:跨行表示与模板字面量
这篇博客将为你介绍在JavaScript中处理字符串的重要工具——模板字面量,也称为反引号字符串。我们将深入探讨如何使用模板字面量来创建跨行的字符串,包括换行符和缩进。你将了解如何通过简单的语法,将变量、表达式和函数嵌入到字符串中,实现动态生成和字符串插值。我们还将探讨如何利用嵌套模板字符串构建复杂的文本结构。通过这篇博客,你将掌握使用模板字面量的技巧,为处理多行字符串、动态消息生成和文本输出提供更便捷和可读的方案。
2023-11-24 20:04:16
501
原创 Selenium实战指南:安装、使用技巧和JavaScript注入案例解析
概要: 本博客将介绍Selenium自动化测试工具的基础知识。我们将从安装Selenium开始,讨论如何设置浏览器驱动程序,并探索Selenium的基本用法,如打开网页、定位元素和模拟用户操作。此外,我们还将深入讨论如何使用JavaScript注入来扩展Selenium的功能。通过注入自定义的JavaScript代码,我们可以实现更高级的自动化操作,如滚动页面、修改元素属性和触发事件。在本文中,你将学习到使用Selenium进行自动化测试和Web交互的基本技巧。
2023-11-24 19:51:16
851
原创 爬虫逆向你应该懂得Javascript知识
就是 broswer object model 浏览器对象,浏览器自带的对象有 window,navigate,loaction,history,screen ,这个地方很重要,为什么需要补环境,因为我们的使用nodejs模拟浏览器执行js,但是node的环境是没有这些对象的。 调用函数时,解析器也不会检查实参的数量,多余实参不会被赋值,如果实参的数量少于形参的数量,则没有对应实参的形参将是undefined。元素节点.insertBefore(element) 在指定的子节点前面插入新的子节点。
2023-11-23 20:21:13
2087
1
原创 使用pymongo对MongoDB数据库进行增删改查
当使用Python和 pymongo连接MongoDB时,可以执行各种操作来增加、修改、删除和查询文档。
2023-11-23 14:17:46
456
原创 MongoDB的常用操作以及python连接MongoDB
本博客概要介绍了MongoDB数据库的常用操作及使用Python连接MongoDB的方法。MongoDB是一种灵活的NoSQL数据库,具有强大的查询功能。通过PyMongo库,可以轻松地连接MongoDB,并执行插入、查询、更新和删除等操作。博客将涵盖连接MongoDB的步骤和基本操作示例,包括插入文档、查询文档、更新文档和删除文档。还将介绍如何利用PyMongo提供的丰富功能处理MongoDB中的数据。通过阅读本博客,你将学会使用Python与MongoDB进行交互,为数据管理和应用开发提供便利。
2023-11-22 23:18:36
1013
原创 编码的发展历史
然而,随着时间的推移和技术的发展,GBK也逐渐被更先进的字符集如GB18030和Unicode所取代,这些字符集能够更好地支持更广泛的字符和语言。常用的表示方式是使用十六进制表示码点,例如字母"A"的码点是U+0041,汉字"中"的码点是U+4E2D。,(一个字节是8个二进制位的数据单元),其中第一个字节的范围是0xB0-0xF7,第二个字节的范围是0xA1-0xFE。需要注意的是,GBK和GB2312之间的编码兼容性非常高,大多数GB2312编码的字符在GBK中仍然可以正确解析和显示。
2023-11-22 21:35:08
362
原创 软件工程理论与实践 (吕云翔) 第十三章 软件测试方法与过程课后习题及其答案解析
集成测试是单元测试的逻辑扩展,它的最简单形式是将两个已经测试通过的单元组合成一个构件,并且测试它们之间的接口。集成测试是在单元测试的基础上,测试将所有的软件单元按照概要设计规则的要求组装成模块、子系统或系统的过程中,各部分功能是否达到或实现相应技术指标及要求的活动。增量集成是将下一个要测试的模块同已经测试好的那些模块结合起来进行测试,测试完后再将下一个应测试的模块结合起来进行测试。系统测试还包括其他类型的测试,如性能测试、安全测试等,以验证系统的功能、性能和符合性等方面。它们之间有什么不同?
2023-11-22 19:28:21
4224
原创 打码平台之图鉴的使用步骤
今天给大家推荐一个我一直使用的验证码识别平台,图鉴,我没有收费,我只是觉得这个网站使用方便,支持验证码种类多,好了,话不多说,上教程!说明你要识别的验证码类型,替换。,直接传入数字即可不是字符串。
2023-11-21 21:37:45
2721
2
原创 软件工程理论与实践 (吕云翔) 第十二章 软件测试概述课后习题及其答案解析
(1)软件测试是对软件规格说明、软件设计和编码的最全面也是最后的审查。(×)解析:软件测试是一个独立的活动,旨在评估软件的质量和发现潜在的问题,而不仅仅是对规格说明、设计和编码的审查。(2)如果通过软件测试没有发现错误,则说明软件是正确的。(×)(3)软件测试的目的是尽可能多地发现软件中存在的错误,将它作为纠错的依据。(√)(4)测试用例由输人数据和预期的输出结果两部分组成。(√)(5)软件测试的目的是证明软件是正确的。(×)
2023-11-21 20:10:59
3148
2
原创 软件工程理论与实践 (吕云翔) 第十一章: 软件编程课后习题及其答案解析
比如,缩写的使用,字母大小写的选择,以及对常量和变量命名的区分等。(1)软件实现是软件产品由概念到实体的一个关键过程,它将(B)的结果翻译成用某种程序设计语言编写的并且最终可以运行的程序代码。虽然软件的质量取决于软件设计,但是规范的程序设计风格将会对后期的软件维护带来不可忽视的影响。解析:软件实现是将详细设计的结果翻译成用某种程序设计语言编写的并且最终可以运行的程序代码。虽然软件的质量取决于软件设计,但规范的程序设计风格将对后期的软件维护带来重要影响。(2)进行程序设计语言的选择时,首先考虑的是应用领域。
2023-11-21 19:46:28
3058
原创 软件工程理论与实践 (吕云翔) 第十章: 面向对象设计课后习题及答案解析
此外,与面向过程中的数据设计所不同的是,面向对象设计中的数据设计并不是独立进行的,面向对象设计中的类图相当于数据的逻辑模型,可以很容易地转换成数据的物理模型。(1)在一个习题库下,各科教师可以在系统中编写习题及标准答案,并将编写的习题和答案加人题库中,或者从题库中选取一组习题组成向学生布置的作业,并在适当的时间公布答案。 系统设计关注于确定实现系统的策略和目标系统的高层结构,系统设计是定义系统的整体结构和组织方式,包括模块关系、数据流动和交互等。类的成员都具有相应的访间控制的属性。这里可以做一些假设。
2023-11-20 21:51:32
6697
原创 软件工程理论与实践 第九章 结构化分析课后习题与解析答案
面向数据结构的设计方法,就是根据数据结构设计程序处理过程的方法。面向数据结构的设计方法按输入、输出及计算机内部存储信息的数据结构进行软件结构设计,从而把对数据结构的描述转换为对软件结构的描述。 面向数据流的设计方法是常用的结构化设计方法,多在概要设计阶段使用。它主要是指依据一定的映射规则,将需求分析阶段得到的数据描述从系统的输入端到输出端所经历的一系列变换或处理的数据流图转换为目标系统的结构描述。解析:SD法是指结构化设计方法(Structured Design),而不是面向数据结构的设计方法。
2023-11-20 21:26:32
3491
3
原创 apply和call在Javascript中的使用与区别
apply()和call()是用于在JavaScript中调用函数并指定执行上下文的方法。它们的区别在于参数的传递方式,apply()使用数组或类数组对象作为参数列表,而call()使用一系列按顺序传递的参数。这些方法提供了灵活性,使您能够动态地更改函数的执行上下文。
2023-11-19 12:59:27
237
原创 关于爬虫中的hook(defineProperty,hook cookies, hook载荷数据,hookXHR)
我们会发现,调用这个对象的属性的时候会自动调用那个函数,而且并没有直接输出我们的age属性值,age属性值被拦截了。我们会发现这个每一页数据的cookies的v都在发生变化,我们需要找到相应的js文件。奇怪吧,原来设置值有的时候可以不对自己进行设置值,设置值可以有输出语句。获得cookie的时候,记着把cookie清空。然后依次向下找,n的值就是cookie中v的值。这样的形式可以使用如下hook代码。我们会发现网址里面的数据被加密了。的代码,所以向下找。
2023-11-19 12:38:28
1004
原创 x程无忧sign逆向分析
弄了半天,发现这个sign是写在document里面的,我们可以xpath,或者正则得到这个数据。 有一点前端基础的同学们,可能发现很简单,就是调用jQuery根据id获取值,当然也可以扣js但是需要补环境,我们后面的实例中会说到,本次就不涉及补环境了。 大部分的网站不会在send和ajax进行参数的加密,只是作为请求发送.观察这个js文件,感觉很像自调用函数,而且还有点想webpack.我们会发现有两个接口,一个结果用于验证,一个接口用于返回信息。去掉前方端点和xhr端点,因为我们找到真正的位置了。
2023-11-18 21:13:34
876
原创 软件工程理论与实践 (吕云翔) 第七章 软件设计课后习题及答案解析
需求分析和软件设计密切相关,需求分析指导设计的范围和功能,而设计过程中的反馈和需求变更也会影响需求分析。 "高内聚、低耦合"的设计有利于提高系统的独立性,因为高内聚使得模块内部功能紧密,独立完成特定任务,而低耦合减少了模块之间的相互依赖,使得模块可以独立开发、测试和维护。这样的设计使得系统中的模块可以独立修改和扩展,而不会对其他模块造成影响,提高了系统的灵活性和可维护性。解析:划分模块的目的是将系统分解为相对独立的功能单元,但模块划分过细可能导致模块之间的通信和管理复杂化,增加开发和维护的工作量。
2023-11-17 20:19:29
5301
2
原创 爬取全国高校数据 (高校名称,高校所在地,高校类型,高校性质,高校特色,高校隶属,学校网站)
爬取全国高校数据 (高校名称,高校所在地,高校类型,高校性质,高校特色,高校隶属,学校网站)
2023-11-17 19:38:07
1148
2
原创 探索请求头中的UUID的不同版本:UUID1、UUID3、UUID4和UUID5
UUID(通用唯一标识符)是一种用于唯一标识对象的常见标识符格式。本文将深入探讨UUID的不同版本及其应用。深入了解这些UUID版本有助于我们更好地理解UUID的含义和用途,在开发和逆向分析中能够更灵活地选择适当的UUID版本来满足不同的标识符生成需求。
2023-11-17 11:01:42
1449
原创 验证码识别之OCR识别
验证码识别是一项旨在攻克模拟登录等场景中出现的验证码难题的技术。其中,OCR识别是一种常见的方法,通过光学字符识别技术将验证码图像中的字符转换为可识别的文本。然而,由于验证码通常采用扭曲、干扰等技巧增加难度,OCR识别在准确率方面可能存在限制。为了提高识别效果,可以结合图像预处理、特征提取和机器学习等技术。另外,各种打码平台也提供在线的人工或半自动服务,帮助识别验证码。此外,OpenCV库可用于验证码识别,通过图像处理和模式匹配等技术来检测和提取验证码中的特征。
2023-11-16 21:56:46
1006
1
原创 深入解析JavaScript中的变量作用域与声明提升
在JavaScript中,理解变量作用域是至关重要的。本博客将深入探讨JavaScript中的不同作用域类型,包括全局作用域、函数作用域和块级作用域。我们还将研究变量声明提升的概念,以及如何使用立即执行函数来创建私有作用域。此外,我们还会比较var和let关键字的区别,并讨论它们在作用域方面的影响。无论您是初学者还是有经验的JavaScript开发人员,本博客都将为您提供深入洞察力,并帮助您更好地理解JavaScript变量作用域的重要性和工作原理
2023-11-15 20:48:48
809
原创 软件工程理论与实践 (吕云翔) 第四章 结构化分析课后习题及答案
数据字典的作用是提供对系统中使用的数据元素的定义、属性、类型和关系的集中管理和描述,确保数据的一致性和完整性,为系统分析、设计和开发提供准确的数据资源和参考资料。对于比较复杂的系统,通常要先构造出各部分的E-R图,然后将各分E-R图集合成总的E-R图,并对E-R图进行优化,以得到整个系统的概念结构模型。 结构化分析方法是一种面向数据流的需求分析方法,其中数据作为独立实体转换,数据建模定义了数据的属性和关系,操作数据的处理建模表明当数据在系统流动时处理如何转换数据。读者,在借书文件上建立档案。
2023-11-14 20:52:54
14305
4
原创 某建筑网页js逆向分析过程(有坑)
注意上面我打断点的位置,在这个解密函数这行打上断点,这行之前应该iv和密钥已经被确定了。我们可以思考一下哪里错了,第一密文数据肯定没有错,有错的话就是iv值,密钥有一些问题。关于iv和key变不变的问题,就看他每一次有没有发送性的请求,没有的话就是固定的。会发现,f在解密之前已经生成好了,而且优先级很高,没有被后面那个f覆盖。对比一下,发现密钥f的值有变换,说明f被覆盖了。我需要使用覆盖后的。 当你有一个包含JSON字符串的变量时,你可以使用。表单中都是正常数据,没有特殊的数据。没办法,在加个断点呗。
2023-11-14 14:56:27
1836
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅