未闻Code

其他

一日一技:怎么中文也属于字母?

摄影:产品经理佛跳墙我最近在使用一个第三方库,叫做RapidFuzz。它有一个工具函数,叫做utils.default_process,在官方文档里面,是这样介绍的:红色方框里面说,这个函数可以移除所有的非alphanumeric字符。如果我们使用翻译软件,会发现alphanumeric的意思是字母和数字。如下图所示:因此,我想当然觉得,这个功能函数,只会保留26个英文字母的大小写加上10个数字,一共62个字符。把除此之外的所有其他字符都移除掉。但我经过测试,它竟然没有办法过滤掉中文字符,如下图所示。难道终于也属于字母?于是我到Github上面去给这个项目提Issue。但作者却说这个函数没有问题,并且使用Python的.isalnum()来做测试,发现Python也会认为中文也是alphanumeric。如下图所示:这就非常奇怪了,于是我找到Python官方文档,发现它是这样说的:str.isalnum()[1]Return
3月12日 下午 8:23
其他

【JS逆向百例】某监管平台,动态字体反爬+验证码+参数加密,一网打尽~

format('embedded-opentype'),url('/publishserver/OTMcrO0f2/OTMwzmwsc/kWSxyIw5Pw_1708486651068.woff')
2月27日 下午 9:49
其他

【文末送书】一个进度条还能玩这么花?

中的显示加上tk,则是一个基于tkinter的进度条弹窗那有人要说了,“我想要的进度条不一定都是用在循环代码上呀”。那也简单,直接定义一个tqdm对象,然后在代码中手动更新进度。from
2月26日 下午 9:04
其他

一日一技:自动提取任意信息的通用爬虫

摄影:产品经理菌菇色拉使用过GNE的同学都知道,GNE虽然是通用爬虫,但只是文章类页面的通用爬虫。如果一个页面不是文章页,那么就无能为力了。随着ChatGPT引领的大语言模型时代到来,这个问题基本上已经不是问题了。我们先来看一个效果。首先打开Linkedin,随便找一个招聘的岗位,如下图所示:然后,我们直接使用GPT从这里提取信息:对应的Prompt为:你是一个数据提取小助手,能够从一大段招聘相关的文本中提取有用的信息并以JSON格式返回。{经过清洗的网页源代码或者文本}请从上面的文本中,提取招聘相关的信息,返回数据格式如下:
2023年12月13日
其他

爬虫萌新也能看懂的JS逆向入门

声明:本文仅做学习交流使用,严禁用于商业或非法用途。文中涉及的敏感内容已做脱敏处理,若有侵权,请联系作者删除。前言出于对数据安全的考虑,现代化的网站/APP通常会对数据接口做加密处理。而分析这些接口的加密算法并实现模拟调用的过程就叫做「逆向」。逆向对于爬虫工程师来说是一个永远绕不开的话题,也逐渐成为各企业招聘时,JD
2022年9月30日
其他

写在我的30岁。

摄影:产品经理莱美露滋的三文鱼到今天就满30岁了。这十年,大学毕业,在成都工作两年,在北京工作一年,在杭州工作两年,在上海工作两年。见过北方秋冬的萧瑟,见过江南初春的烟雨。这十年,去过大大小小的公司。中国的外资的、卷的和不卷的。有工作体验极好的团队,让人想在这干一辈子;也有工作体验极差的部门,入职第一天就想离开。有人说,愿意主动跳出舒适圈的人,本质上都是抖M。这十年,出版了两本书、讲过很多课、写了几百篇公众号原创文章,开源项目拿到过几千Star、还当了微软最有价值专家。不断提升自己的同时,也帮助了很多人。这十年,幸好有七年自由自在的时光。我的大学,能在校园里充分度过;工作以后,也能在任何时候说走就走,去看佛罗伦萨的教堂、去泰国和越南的沙滩奔跑,去参加几万人的演唱会。五年前,只身一人开始北漂,没有钱也没有认识的人。现在,虽然没有回到成都,但已经在上海成家。有一个爱我的妻子,有一群很好的朋友,有一个还算不错的工作。四年前,我认识了我现在妻子。她是目前为止我见过的最好的产品经理(实话实说,不带光环)。也是我见过最会人际沟通的人。她不仅会做产品,还会做设计,做运营。文章写得非常好。作为美术生,只用半年的学习就能上211。她拥有我从来都学不会的社交技能。我不是一个懂得享受生活的人,但是有她在的日子里,我的生活比之前精彩了很多。这十年,我从一个需要被人带的应届生,一步一步走过来。虽然很多人现在叫我大佬,但我觉得我距离大佬还差很多。我高中同学,从程序转成产品,现在已经做到了某大厂一人之下万人之上的位置。而我现在还是一个小小的螺丝钉。总结起来,这十年里,虽有遗憾,并无后悔。满30岁了,三十而立。立什么呢?立志、立身、立言。加油吧。
2022年9月24日
其他

真心推荐的好书《编程珠玑》

关注我们丨文末赠书青南:我刚毕业的时候就买过《编程珠玑》,这真的是一本好书,对我早期的代码提升有非常大的帮助。推荐大家看看。说起IT编程经典,我们总是绕不开《编程珠玑》。距离这本书首次问世已有近40年之久了,中文版也已经出版近15年。以计算机和互联网的发展速度而言,别说是40年,哪怕只有几个月也足够让一项技术更新得“面目全非”。那么这一本1986年就面世的《编程珠玑》,为何至今仍能畅销全球,且被业内大牛誉为编程“奇书”?对于这个问题,我们邀请了一位老朋友——资深技术人高博,来和大家聊聊《编程珠玑》。▲
2022年9月16日
其他

App逆向:root 检测与加密字符串定位(文末送书)

声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请在公众号【K哥爬虫】联系作者立即删除!逆向目标设备:Google
2022年9月13日
其他

豆瓣评分9.3,吴军博士重磅新作,修炼你的计算思维!(文末送书)

有人说“程序员分为两类:看过《数学之美》的与没看过的。程序员职业生涯也可分为两个阶段:读了《数学之美》之前与之后。”也有人说“一部IT人非读不可,而非IT人也应该阅读的作品非《浪潮之巅》莫属。”这两本书都是在计算机界掀起阅读热的巨著,《数学之美》从获得数百万点击的系列博客到一本屡获大奖的畅销书,《浪潮之巅》从一上市就在业界获得巨大反响到印刷超60万套,被称为计算机史上的“人间词话”,它们的魅力是有目共睹的。尤其是在程序员圈子,看看有多少“程序员必读书单”中都力荐了这两本书,便可知晓它们对程序员的重要性。▲豆瓣评分8.9的《数学之美
2022年9月6日
其他

人均瑞数系列,瑞数 5 代 JS 逆向分析

声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责,若有侵权,请在公众号【K哥爬虫】联系作者立即删除!前言瑞数动态安全
2022年9月2日
其他

像孔乙己一样研究设计模式【工厂模式的三种写法】

设计模式中的工厂模式是我们编写代码时常用的一种建造型模式,用于创建指定类的实例。在不使用设计模式的时候,我们是怎么创建类的实例的呢?别多想,这个问题没坑,就是我们写代码时直接用
2022年9月1日
其他

一日一技:如何正确为历史遗留代码补充单元测试?

摄影:产品经理某种鲳鱼我们知道,在软件工程中,单元测试是保证软件质量的重要手段之一。一个优秀的代码,单元测试的代码量,经常会超过被测试的代码本身。一个理想化的开发团队,可能有三分之二的时间是在写测试,剩下的三分之一时间才是写业务代码。如果你的项目是从一开始就写单元测试,那么你写起来应该轻松又愉快,因为单元测试会促使你的代码自身变成可测试的代码。但如果你接手了一个大项目,里面已经有几十万行代码了,那么给这些代码补单元测试会让你知道什么叫做痛不欲生。你会发现有一些函数,它让你不知道怎么写测试代码。但你又不能随便修改代码的结构,谁知道会引起什么连锁反应?我们来看一个例子:我想测试的是business_code里面,check_data_dup分别返回True或者False的时候,下面代码的逻辑。也就是说,我只关心第18-27行的逻辑。这个时候不关心MySQL和Redis。但是每次测试都要从他们里面读取数据,这样就会导致测试代码依赖外部环境。如果MySQL或者Redis挂了,那么测试代码就会运行失败。而且,就算Redis和MySQL没有故障,你怎么知道你的data_id和pk,在数据库中对应的是什么数据?为了分别走到特定的分支,你还需要去检测数据库中特定数据的id。万一是测试环境,别人修改了里面的数据,你的测试也可能会挂掉。如果直接使用Pytest来写测试案例,代码是这样的:可以看到,我运行Pytest以后,成功了一个,失败了一个。这里我模拟出数据库中没有数据能够让check_data_dup走到返回True逻辑的情况。难道为了让单元测试进行下去,我还要去数据库构造一条特定的数据?这只是单元测试,又不是集成测试。为了解决这个问题,我们就可以使用mock模块。这是Python自带的一个模块,可以动态替换函数。它的写法非常简单:我们只需要使用@mock.patch装饰器,装饰测试函数就可以了。这个装饰器接收两个参数,第一个参数是被模拟的函数的路径,以点分割;第二个参数是你想让它返回的值。从上图可以看到,test_runner.py运行以后,原本在read_data_from_redis和read_data_from_mysql中打印的两段文字都没有打印,说明这两个函数已经被动态替换了,他们内部的代码不会运行。只会直接返回我们预设的这个返回值。这样一来就跟数据库解耦了。注意,在上图中,由于我们已经mock了check_data_dup,因此read_data_from_redis和read_data_from_mysql两个函数随便返回什么值都可以。如果你想顺带也测试一下check_data_dup,那么可以不mock它,如下图所示。在check_data_dup函数的逻辑中,如果data参数含有字符x,并且user_id是偶数,就返回True,否则返回False。我们通过mock两个读数据的函数,分别设置不同的返回值,就能满足让check_data_dup返回不同值的条件。mock.path有一个小坑,一定要注意。我们来看看下面这个文件结构:read_data_from_redis和read_data_from_mysql两个函数分布在了不同的文件里面。在runner.py中导入并使用了他们。test_runner.py中,我们使用@mock.patch对这两个函数定义的路径打补丁进行替换。可是替换了以后,运行Pytest,会发现这两个函数竟然正常运行了。也就是说我们的替换失败了。之所以会出现这种情况,是因为我们要打补丁的并不是这两个函数定义的地方,而是使用的地方。我们在runner.py中,分别使用如下两个语句:from
2022年8月26日
其他

Github上面5 个骚气满满的项目!

来解决问题,内容偏实战,还是挺有参考价值的。地址:https://cbx33.github.io/gitt/intro.html书籍年代有些久远,但胜在趣味性强,感兴趣的同学可以去看看。4.
2022年8月24日
自由知乎 自由微博
其他

长见识,让大家看看什么是垃圾代码

摄影:产品经理牛小排在以前的文章中,在微信群中,我多次强调,写函数的时候,不要把所有参数放到一个大字典里面作为参数到处传,否则时间久了以后,根本不知道字典里面有哪些数据:def
2022年8月15日
其他

一日一技:用一个奇技淫巧把字符串转成特定类型

摄影:产品经理油炸肥肠我们有时候可能会需要把一个字符串转换成对应的类型。例如,把'123'转换为int类型的123;或者把'3.14'转成浮点数3.14。前提条件是不能使用eval或者exec。这是一个非常简单的功能,常规做法直接使用if判断就可以了:def
2022年8月13日
其他

7 行代码搞崩溃 B 站,原因令人唏嘘!

站代码中,除了出事故时传的字符串“0”以外,估计它一直接收的都是其它字符串数字,一直也没出问题,显然程序员是把这当成一种便利手段了(因为不需作类型转换)。然而,不幸的是,Lua
2022年8月8日
其他

为什么权限管理会用124三个数字?

摄影:产品经理三黄鸡就是好吃啊相信很多人在Linux里面,遇到文件权限问题的时候,总是喜欢把文件的权限修改为777。觉得这样可以解决一切问题。那么大家有没有想过一个问题,为什么数字7表示一个文件具有可读、可写、可运行的权限?对于当前用户,如果想给文件权限设置为可写可执行不可读,那么应该用哪个数字?如果想让文件可读可写不可执行,又要用哪个权限?系统强制要求SSH私钥的权限为600,这里的600表示什么意思?如果想再加一个修改权限,那么它用哪个数字比较好?我们知道,1,2,4这三个数字可以表示7以内的所有数字。例如:1:
2022年7月30日
其他

【粉丝投稿】机器马大佬的微软面经

目前是站在面试已经过去3个月的时间点写这篇面经,微软其实一直是我心中的理想公司,最主要的两点是WLB和transfer机会,但是最后我没有选择微软,具体原因之后讲如何选offer的文章会提到.这篇主要讲一下微软的面试流程和面经.
2022年7月21日
其他

统计千行代码Bug率,有没有意义?

摄影:产品经理朴素的一餐我的结论是:统计Bug率有意义。但是统计千行代码Bug率没有意义。为什么千行代码Bug率是没有意义的?某公司最近出了一个方案,用来量化程序员的工作绩效。叫做千行代码Bug率。在一个统计周期内,程序员每增加或者修改的代码行数与QA发现的Bug数,根据如下规则计算Bug率:1000行代码,1个bug,那么Bug率是100%;2000行代码,4个bug,那么Bug率是200%;5000行代码,3个Bug,那么Bug率是60%n行代码,m个Bug,那么Bug率是m
2022年7月13日
其他

一日一技:把自然语言描述的时间转成标准格式

摄影:产品经理椰子鸡不好吃如果你使用过嘀嗒清单或者Todoist,那你应该知道他们有一个很好用的功能,那就是自动识别任务中的时间,例如:下周二下午三点给老板发邮件它会自动识别为:今天,公众号粉丝群里面,有一个叫做NowAnti的同学推荐了一个项目,叫做司南,它就可以让Python实现这样的功能。我们来看看这个第三方库怎么使用。首先pip安装它:python3
2022年7月7日
其他

人均瑞数系列,瑞数 4 代 JS 逆向分析(文末送书)

声明本文章中所有内容仅供学习交流使用,不用于其他任何目的,不提供完整代码,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关!本文章未经许可禁止转载,禁止任何修改后二次传播,擅自使用本文讲解的技术而导致的任何意外,作者均不负责前言瑞数动态安全
2022年7月6日
其他

一日一技:如何实现带timeout的input?

摄影:产品经理产品经理亲自煎的牛排我们知道,在Python里面,可以使用input获取用户的输入。例如:但有一个问题,如果你什么都不输入,程序会永远卡在这里。有没有什么办法,可以给input设置超时时间呢?如果用户在一定时间内不输入,就自动使用默认值。要实现这个需求,在Linux/macOS系统下面,我们可以使用selectors。这是Python自带的模块,不需要额外安装。对应的代码如下:import
2022年6月28日
其他

一日一技:多个Python项目怎么调用我自己的工具函数?

摄影:产品经理香菇上的六角星在多年写代码的过程中,我总结了不少常用的工具函数。这些工具函数有的能够实现快速重试网络请求,有的可以把任意格式的时间转成标准格式,还有的可以自动生成正则表达式。我把这些工具函数分别放到多个.py文件中。然后把这些.py文件放在一个叫做my_awesome_util的文件夹中。由于我没有把这些代码上传到Pypi或者Github,因此我每次在新的项目中要使用时,都要把my_awesome_util文件夹复制到新的项目中,非常麻烦,而且会形成大量的重复代码。有没有什么办法,能让新开的项目直接就能导入这些工具函数呢?就像导入官方模块import
2022年4月11日
其他

一日一知:国内爬虫开发人员的未来

摄影:产品经理烤三文鱼腩先抛出我的观点:希望各位做爬虫的同学,尽快,尽可能多地做海外的爬虫项目,爬海外的网站,这才是你们新的未来。最近两年,我已经没有做过国内任何网站的爬虫了,根据这两年爬海外网站的一些经验,谈谈我的发现和想法。内地的环境不适合做爬虫国内网站在这么多年的爬虫与反爬虫的斗争中,反爬能力越来越强,瑞数、极验和其它第三方专业反爬虫系统,已经能挡住很多人了。国内值得爬的网站就只有几个,大家都在爬,你有1GB的数据,他有1TB的数据,内卷极其严重。并且还有很多工作室直接使用群控技术,几万台机器一起爬,普通人很难跟他们竞争。国内一些专门做舆情分析的公司,他们甚至可以通过地下渠道直接拿到网站的内部API,数据质量比你通过爬虫爬的数据高多了。最后,比较重要的是,爬国内的大网站,很容易被请喝茶。轻者拘留,重者在档案里面留下一辈子的污点。海外数据的新机遇NLP的语料NLP最重要的四个元素就是:语料、模型、算法、算力。其中模型和算力可以复用,自然不是问题。但因为没有人抓海外的数据,因此缺少了语料,没有语料,就没有办法训练模型。NLP里面的ABSA、语意理解、文本生成、智能问答也全都做不下去。特别是小众语言——法语、俄语、韩语、西班牙语,几乎就没有国内的公司在做。抓数据不难,但难在对数据的标注。现在国内对小众语言的标注,还停留在使用Google翻译把小众语言先翻译成英文,再让人去给英文打标的阶段。如果你能尽早收集小语种的语料,然后让懂这个语料的人去打标,那么以后即便你不直接做NLP,光出售小语种的标注数据,你都可以大赚一笔。国内学习小语种的大学生,找工作都很困难。如果你能让他们兼职给你标注数据,不仅提供了就业岗位,而且价格非常低廉,属于是双赢。语料抓取的壁垒不是爬虫技术,而是数据量和数据多样性。数据量达到一定规模以后,壁垒自然就能形成。别人的爬虫再先进,只要他短期收集不了那么多的数据,那么他就没有办法超过你。总之,越早开始收集海外语料,越早能形成自己的壁垒。游戏出海众所周知,游戏在内地已经没有未来了,各大游戏厂商在接下来的几年会把游戏出海作为最重要的目标。目前已经有几家公司的游戏在东南亚大杀四方,在欧美市场也一路血洗当地的产品。想必大家都知道我说的是哪几个游戏。但可以确定的是,目前国内做舆情分析的公司,还没有谁能够把海外舆情(特指非英语国家)分析做好。如果你有丰富的海外舆情抓取经验,那么当这些公司招聘的时候,你就有很高的竞争力。尽职调查除了游戏外,基于数据的尽职调查也是一个方向。投资人在确定是否要投资某个创业公司前,都会做尽职调查(DD)。其中基于数据的尽职调查(DDD)就是其中的重要一环。例如一个电商初创公司告诉投资人,他每个月的销售额有几百亿,然后你用爬虫爬一下他的商城,根据每个商品的销量和评论,反推出他的月销售额只有几百元,那么你就能知道这个电商公司在骗投资人了。又比如某个直播网站,对投资人宣称自己的日活月活非常高,然后你用爬虫监控一下热门主播的评论数,礼物数,设计一个公式计算出它的真实日活月活,两边一对比你就知道他们有没有骗人了。海外网站是新的蓝海只要你把视野放开,稍微研究一下我国台湾、香港的网站,以及英法意德,巴西韩国,俄罗斯东南亚的网站,你就会发现:大部分网站几乎没有反爬虫机制语料极其丰富小部分网站有极难的反爬虫系统(Akamai),但是可以通过曲折绕过的方式拿到数据国内几乎没有竞争对手,你爬得越多,你积累的原始资本就越大如果你是个人开发者,你几乎不用担心有什么风险。因为不会有人来找你喝茶。怎么跟外国的公司竞争?有人可能会问,难道美国、欧洲自己没有做爬虫、做舆情的公司吗?他们肯定也做了很多年了,为什么国内的公司要找你,而不去找这些欧美本土的公司?我认为,就凭这五个字:你是自己人。如果你是一家中国的公司,专注分析海外舆情。即便你的业务能力跟一家欧美公司差不多甚至稍微低一些(当然低太多可不行),国内的大公司在选择合作伙伴的时候,一定会优先考虑你,而不是欧美当地的公司。无论从人性上,还是从法律合规上,选择自己人都会安心很多。从人性上,中国人会选择跟中国人合作。大家都在互联网圈子,你这个公司怎么样,你这个老板怎么样,稍稍打听一下就知道了。只要知道你确实有实力,为什么不找你?从业务上,两边公司沟通都用中文,有什么问题线上聊一下或者出个差,早上出发中午就能到,沟通起来很方便。大公司应该怎么做爬虫?我提到如果你是个人开发者或者小公司,那么你几乎不用担心任何风险。尽管爬就是了。但如果你是国内的大公司,那么还是有一些注意事项的。因为大公司会担心像GDPR这样的信息保护法,也会担心如果爬虫被发现了会影响自己的国际声誉。但这些其实都不是什么大问题,都有办法绕过去的。具体做法跟本文的关系不大,我就先不讲了。如果大家对爬虫出海有兴趣的话,请留言告诉我,我可以再分享一些具体的实践经验。END未闻
2022年4月4日
其他

一日一技:为什么网站知道我的爬虫使用了代理?

摄影:产品经理好菜上场在公众号粉丝群里面,经常有同学问:为什么自己的爬虫明明设置了代理,但一访问网站就能被发现。我总结了几种常见的情况。实际上,网站要识别你是否使用了代理,并不一定非要什么高深的反爬虫机制,也不需要使用AI识别用户行为。下面这几种情况,要识别代理简直是易如反掌。你根本没有使用代理有一些初学者在使用Requests请求网站的时候,是这样写的代码:import
2022年3月20日
其他

超有趣的Python实战:将图片转成像素风!

./tiles/square2/gen_square2/生成👇这次的效果就很不错了,跟文章一开始的示例风格非常像啦。下载和使用如果大家看完比较感兴趣,想自己实战怎么办?还需要git
2021年12月25日
其他

一日一技:使用装饰器简化大量 if…elif…代码

get_discount(3)print(f'等级3的用户,获得的折扣是:{discount}')运行效果如下图所示:这样写,比用字典的方式更直观,比直接用if
2021年11月11日
其他

一篇文章掌握 Python 内置 zip() 的全部内容

循环还可以把元组内的元素依次取出,这样会很方便:它的参数并不要求是同一类的可迭代对象,因此可以有非常多的组合方式,例如:但是,如果把字典作为
2021年9月4日
其他

​一日一技:如何替换URL中的query字段?

'https://xxx.com/articlelist?category=technology&after=asdrtJKSAZFD&other=abc']for
2021年8月30日
其他

为什么随机 IP、随机 UA 也逃不掉被反爬虫的命运

https://engineering.salesforce.com/tls-fingerprinting-with-ja3-and-ja3s-247362855967未闻
2021年8月19日
其他

一日一技:实现有过期时间的LRU缓存

print(id_name_map[user_id])现在,我们直接在while循环内部调用read_id_name_map,如果两次调用的时间间隔小于600秒,那么time.time()
2021年7月26日
其他

5分钟,自己做一个隧道代理

Key。如果你的Redis没有密码,可以把设置密码的这一行删掉入口代理的端口设置好了这些配置以后,我们就可以使用Docker来启动它。Docker的配置文件极其简单:from
2021年7月23日
其他

使用倒排索引极速提高字符串搜索效率

Morning。这一句也会被认为包含CNM这个词,但实际上它只是同时包含了C、N、M三个字母而已。接下来,有人会问了:原来直接查询CNM的时候,只需要查询8次就可以了。现在你分别查询C
2021年1月13日
其他

最完美方案!模拟浏览器如何正确隐藏特征

js})driver.get('https://bot.sannysoft.com/')time.sleep(5)driver.save_screenshot('walkaround.png')#
2020年11月28日
其他

别去送死了。Selenium 与 Puppeteer 能被网站探测的几十个特征

Puppeteer(Pyppeteer)通过模拟浏览器来编写爬虫,自以为这样可以不被网站检测到,想爬什么数据就爬什么数据。但实际上,Selenium
2020年11月26日
其他

一日一技:立竿见影地把你的 Python 代码提速7倍

还有一个文件叫做fast_fib.c。不过你不用打开这个文件,因为它有3200多行。并且你甚至可以直接把它删掉。真正有用的只有这个fast_fib.cpython-38m-darwin.so文件。
2020年4月14日
其他

(最新版)如何正确移除 Pyppeteer 中的window.navigator.webdriver

browser.close()asyncio.run(main())代码的运行效果如下图所示:完美解决问题。并且只要你不开新的选项卡或者新的窗口,只在当前窗口打开新的网址或者刷新页面,这个
2020年3月7日
其他

(最新版)如何正确移除Selenium中的 window.navigator.webdriver

摄影:产品经理产品经理的三文鱼炒饭在《一日一技:如何正确移除Selenium中window.navigator.webdriver的值》一文中,我们介绍了在当时能够正确从Selenium启动的Chrome浏览器中移除window.navigator.webdriver的方法。后来时过境迁,Chrome升级了版本,导致当时的方法已经失效。如下图所示:针对最新版本的Chrome,我们应该如何正确隐藏这个参数呢?在那篇文章里面,我骂了一种掩耳盗铃的方式:打开网页,然后通过执行如下
2020年3月5日
其他

浅度测评:requests、aiohttp、httpx 我应该用哪一个?

True。我们发送100次请求,计算总共耗时。requests在前几天的文章中,我们提到,使用requests.post每次都会创建新的连接,速度较慢。而如果首先初始化一个
2020年1月21日
其他

GNE v0.1正式发布:4行代码开发新闻网站通用爬虫

https://mirrors.163.com/pypi/simple/安装过程如下图所示:功能特性获取正文源代码在extract()方法只传入网页源代码,不添加任何额外参数时,GNE
2020年1月1日
其他

一日一技:实现函数调用结果的 LRU 缓存

算法:最近最常使用的参数生成的结果,我们存下来,下次遇到相同的参数时直接返回结果。而不常出现的参数,等到需要的时候再计算。计算完成后,也先存下来。但是如果缓存空间不够了,不常使用的会先删除。LRU
2019年9月3日
其他

一日一技:快速实现Python 命令行参数

test_fire.py--help可以看到自动生成的帮助信息:如果漏掉了某些信息,那么就会报错:那么如果有些参数可要可不要怎么办呢?也非常简单,给函数参数带上默认值即可,例如:import
2019年9月2日
其他

在Pyppeteer中正确隐藏window.navigator.webdriver

摄影:产品经理厨师:kingname(文末福利)在我以前的一篇文章:一日一技:如何正确移除Selenium中window.navigator.webdriver的值,我讲到了如何在Selenium启动的Chrome中,通过设置启动参数隐藏
2019年8月16日
其他

一日一技:为什么浮点数在计算机中可能不准确?

反复乘以2,取小数点左边的部分。如果乘积大于1,减1。简称:乘基取整。每次乘完以后把小数点左边的数从左到右按顺序排列。直到积为0时结束。
2019年4月2日
其他

为什么你需要少看中文技术博客以及如何在Python里面精确四舍五入

最后,如果有同学想知道为什么0.125和0.375能被精确的储存,而1.115、11.245不能被精确储存,请在这篇文章下面留言,如果想知道的同学多,我就写一篇文章来说明。
2019年3月31日
其他

【一日一技】揭秘字符串的两副“面孔”

print(c)D:\game\pal4我怎么和前面的pal4拼在一起了?因为\u6211是一个Unicode编码,表示中文我。这种情况下,你有两种解决方式:1.
2019年3月19日
其他

【一日一技】破译反斜杠数量问题的密码

“大家在开发Python的过程中,一定会遇到很多反斜杠的问题,很多人被反斜杠的数量搞得头大。这期我们就来介绍一下如何处理这些让人头疼的反斜杠。”首先我们写一段非常简单的Python代码,它的作用是把一个字段先转换为JSON格式的字符串,然后把这个字符串再转换为JSON格式的字符串:import
2019年3月18日
其他

一日一技:如何正确移除Selenium中window.navigator.webdriver的值

true。如下图所示。那么是不是可以在每一个页面都打开以后,再次通过webdriver执行上面的js代码,从而实现在每个页面都把
2019年2月12日
其他

一日一技:装逼技能,口算二进制转八进制和十六进制

大家或多或少都听说过如何把一个十进制数转换为二进制数。但是如果我给你一个数字,让你口算转换为二进制数,你肯定会觉得我这是在为难你胖虎。例如8769转换为二进制是多少?答案是10001001000001。如果你口算做除法,可能根本记不住这么多位。那么今天告诉你一个技能,如何口算实现:八进制二进制十六进制的转换。例如:二进制八进制十六进制1011101010101101015652652eab5111010101110111113527371d5df这三个进制之间的转换,初看起来毫无规律,如何口算?为了实现口算,你需要记住16个对应关系:二进制八进制十六进制000111102211331004410155110661117710001081001119101012a101113b110014c110115d111016e111117f这16个组合非常好记,你搬着手指也能数出来。二进制与八进制的互相转换现在,给你一个二进制数:
2019年1月5日
其他

一日一技:负长整数如何转换为IPv4地址?

197.44.227.228在计算机中,负数都是使用补码的形式来表示的,所以对于两个二进制数相减,在计算机中实际上是做得被减数加上减数的补码。如果大家对此有兴趣,请在评论留言,我们明天细讲。
2019年1月4日