4 若数

尚未进行身份认证

我要认证

连击挑战~

等级
TA的排名 2w+

Python3 js文本数据解密爬虫 AES CBC模式解密

最近采集一个网站,返回数据json数据全是这样的:很明显是这个数据是做了加密的,于是尝试在sources中寻找关键加密的关键字,诸如base64等,果不其然,打几个断点发现这里就是所有json数据解密的关键过程,搜索关键字aes相关:在结合解密代码,在一个加解密网站成功复刻了数据:接下来就是利用Python3完成对应的解密过程,对应的博客 简单分离处理后得到Python3版本的AES ...

2019-12-09 15:50:44

python爬虫获取localStorage中的数据

最近采集数据遇到一个accessToken 类似微信中公众号的全局唯一接口调用凭据access_token,公众号调用各接口时都需使用access_token。但是这个可不友好,该数据是存放在localStorage,是一种可以替代cookie,存储更多地信息的本地存储方式,我们可以利用selenium执行js拿到localStorage中的目标数据:browser.get("http://j...

2019-12-09 15:28:57

selenium怎样避免被服务器检测

selenium怎样避免被服务器检测  selenium是用来完成浏览器自动化相关的操作.可以通过代码的形式制定一些基于浏览器自动化的相关操作(行为动作),当代码执行后,浏览器就会自动触发相关的事件.但这并不能避免服务器的检测.当在浏览器中打开开发者工具输入window.navigator.webdriver时会显示true,说明被服务器检测到了,通常情况下会显示undefined.下面我们就通...

2019-06-28 14:47:10

Python3之数据指纹MD5校验与对比

MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计,于1992年公开,用以取代MD4算法。概述MD5校验码通过散列函数计算而成,可以生成任何数据的数据“...

2019-06-10 22:14:10

Python函数参数匹配模型通用规则keyword-only参数

概述Python3对函数参数的排序规则更加通用化了,即Python3 keyword-only参数,该参数即为必须只按照关键字传递而不会有一个位置参数来填充的参数。该规则在处理人一多个参数是很有用的。keyword-onlykword_only(1, 2, 3, c=4)print('-' * 20)kword_only(a=1, c=3)示例结果:1 (2, 3) 4-----...

2019-06-09 21:55:16

Python函数参数匹配模型(下)

任意参数 *当我们的函数接收参数为任意个,或者不能确定参数个数时,我们,可以利用*来定义任意数目的参数,这个函数调用时,其所有不匹配的位置参数会被赋值为元组,我们可以在函数利用循环或索引进行使用def f(*args): # 直接打印元组参数 print(args) print('-'*20) # 循环打印元组参数 [print(i) for i in ...

2019-06-08 17:46:56

Python函数参数匹配模型(上)

概述Python3中函数参数一般都是通过赋值进行传递的,而调用者只需要知道如何正确的传递参数即可直接使用函数,位置参数即我们使用最频繁的参数传递方法,通过参数的默认位置从左到右进行匹配def f(x, y, z): print(x, y, z)f(1, 2, 3)示例结果:1 2 3关键词参数我们可以通过函数参数关键字进行参数传递,此时参数的传递是通过变量名匹配,...

2019-06-07 20:59:15

Python3之递归函数简单示例

概述递归函数即直接或间接调用自身的函数,且递归过程中必须有一个明确的递归结束条件,称为递归出口。递归极其强大一点就是能够遍历任意的,不可预知的程序的结构,比如遍历复杂的嵌套列表。递归求和我们可以利用递归函数实现一个Python内置函数sum()的递归版。# 递归def d_sum(L): if not L: return 0 else: r...

2019-06-06 18:38:35

Python3之对象垃圾收集机制浅析

###概述GC作为现代编程语言的自动内存管理机制,专注于两件事:1. 找到内存中无用的垃圾资源 2. 清除这些垃圾并把内存让出来给其他对象使用。 在Python中,它在每个对象中保持了一个计数器,用于记录指向该对象的的引用的个数。一旦这个计数器为0时,则立即回收该对象,对象占用的内存空间将被释放。引用计数我们可以利用简单的变量引用和销毁窥见引用计数过程。增加引用计数增加引用计数的方式多种...

2019-06-05 22:14:04

Python3内置模块之Pickle和cPickle数据持久化方法小结

概述模块Pickle实现了对一个 Python 对象结构的二进制的序列化和反序列化。  即当Python程序持续运行一些字符串、列表字典、甚至自定义的类等数据对象,需要持久化存储,即存储在磁盘中,防止运行在内存中,因断电等情况丢失数据。那么Pickle模块就派上用场了,它可以将对象转换为一种可以传输或存储的格式。python的pickle模块实现了基本的数据序列和反序列化。通过pick...

2019-06-04 22:03:40

Python3日期与时间戳转换的几种方法

概述日期和时间的相互转换可以利用Python内置模块time和datetime完成,且有多种方法供我们选择,当然转换时我们可以直接利用当前时间或指定的字符串格式的时间格式。获取当前时间转换我们可以利用内置模块datetime获取当前时间,然后将其转换为对应的时间戳。import datetimeimport time# 获取当前时间dtime = datetime.datetime....

2019-06-03 21:47:14

Python3之字符串格式化format函数详解(下)

格式限定符format通过丰富的的“格式限定符”(语法是 {}中带:号)对需要格式的内容完成更加详细的制定。进制转换我们可以再限定符中制定不同的字符对数字进行进制转换的格式化,进制对应的表格:字符含义b二进制cUnicode 字符d十进制整数o八进制数x十六进制数,a 到 f 小写X十六进制数,A 到 F 大写N = 99...

2019-06-02 22:09:08

Python3之字符串格式化format函数详解(上)

概述在Python3中,字符串格式化操作通过format()方法或者f’string’实现。而相比于老版的字符串格式化方式,format()方法拥有更多的功能,操作起来更加方便,可读性也更强。该函数将字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号{}作为特殊字符代替%。位置设定默认位置不指定格式化位置,按照默认顺序格式化S = 'I {} {}, and I\'am lea...

2019-06-01 22:48:24

Python3内置模块之base64编解码方法小结

概述Base64 是网络上最常见的用于传输 8Bit 字节码的编码方式之一,Base64 就是一种基于 64 个可打印字符来表示二进制数据的方法。可查看 RFC2045 ~ RFC2049,上面有 MIME 的详细规范。Base64 编码是从二进制到字符的过程,可用于在 HTTP 环境下传递较长的标识信息。比如使二进制数据可以作为电子邮件的内容正确地发送,用作 URL 的一部分,或者作为 HTT...

2019-05-31 21:37:47

Python3内置模块之json编解码方法小结

概述Python3中我们利用内置模块json解码和编码JSON对象,JSON(JavaScript Object Notation)是指定 RFC 7159(废弃了RFC 4627)和 ECMA-404是一种轻量级数据交换格式,受 JavaScript对象文字语法的启发 (虽然它不是JavaScript 1的严格子集)。下面为Python对象–>JSON对象的对照关系表。Pyth...

2019-05-30 22:12:01

Python3内置模块之pprint让打印比print更美观

概述在我们使用内置打印函数print时,打印出的Python数据结构对象总是一行的输出的方式,这样对数据结构较复杂或数据较多的对象的显示并不美观,这时我们可以利用pprint输出美化数据结构对象。pprint方法概览美化输出我们可以利用pprint中的PrettyPrinter控制输出的打印时的缩进,行宽、甚至打印深度等,定义类如下class pprint.PrettyPrinter(i...

2019-05-29 21:56:10

Python3爬虫框架Scrapy:scrapy view http://www.xxx.com DEBUG: Forbidden by robots.txt:解决方案

当我们想利用scrapy view来查看requests后的网页结果并在把浏览器中渲染出来时,可以:scrapy view http://www.baidu.com可能遇到以下问题:DEBUG: Forbidden by robots.txt: <GET http://www.baidu.com>即Scrapy在requests时会查看目标网站的robots.txt,判断是否允许...

2019-05-29 16:42:14

Python3内置模块之玩出花儿的random随机方法小结

概述random是Python中与随机数相关的模块,其本质就是一个伪随机数生成器,我们可以利用random模块基础生成各种不同的随机数,以及一些基于随机数的操作。生成随机数相关生成0~1之间的浮点数import randomr = random.random()print(r)r = random.random()print(r)示例结果:0.9928249533693085...

2019-05-28 22:10:17

Python增强赋值及共享引用注意事项

概述Python中的增强赋值是从C语言中借鉴出来的,所以这些格式的用法大多和C一致,本身就是对表达式的简写,即二元表达式和赋值语句的结合,比如a += b 和a = a + b 就是一致的,比如还有以下的增强赋值语句。----a += ba &= ba -= ba |= ba *= ba ^= ba /= ba >>=ba %...

2019-05-27 21:56:18

Python3多目标赋值及共享引用注意事项

概述Python中多目标赋值即将等号左边所有的变量名都赋值给右边的对象,完成赋值操作,比如将三个变量同时赋值给一个字符串。a = b = c = 'Python'print(a)print(b)print(c)示例结果:PythonPythonPython在多目标赋值中,其本质即类似三个变量的指针指向了同一个内存空间,即三个变量共享了内存内同一对象。不可变对象对于不可变...

2019-05-26 21:42:57

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。