这些抓包工具,你值得拥有
如今的时代是互联网时代,互联网已经在我们的生活如影随形。
以说我们无时无刻在跟互联网打交道。
而在工作,我们可能会因开发调试、测试、排查网络故障等原因,需要对网路数据包进行抓取、拦截以解析。
因此,本文主要内容是推荐几款不错的抓包工具。
1.FiddlerFiddler 是一个使用 C# 编写的 http 抓包工具。
它使用灵活,功能强大,支持众多的 http 调试任务,是 web、移动应用的开发调试利器。
所以 Fiddler 经常被运用在网络爬虫抓包、HTTP API 测试、手机抓包等场景。
下载地址
推荐原因:
操作简单,上手容易,学习成本低。
能够抓取 HTTP/HTTPS 协议的数据包。
支持伪造 CA 证书来欺骗浏览器和服务器,从而实现解密 HTTPS 数据包。
不仅支持抓取 PC 浏览器的数据包,而且支持抓取手机数据包。
支持设置“断点”,从而能够修改 HTTP 的请求头信息以及请求体的数据。
2.CharlesFiddler 虽然强大且好用,但是不支持 Mac OS 系统。
Charles 是 Fiddler 在 Mac 系统上的代替品。目前 Ch ...
Python 中“is”和“==”的区别
相比 C/C++ 、Java 等强类型语言, Python 定义变量的方式就简单多了。
我们只需要给变量起个变量名,而不需要给变量指定类型。
正因为 Python 弱化类型这一概念,所以我们能随意给变量赋值。
值可以是整数,浮点数,字符串,列表等。
1234a = 1a = 3.33a = 'monkey'a = [1, 2, 3]
凡事都有正反两面。
使用弱类型语言编程,我们可以不需要定义变量类型,可以随意转换类型,代码看起来很简介。
但是在变量判断是否相等时候,会给我们造成一定困惑。
判断值相等,是选择 “is” 还是 “==” 了?
当你了解 Python 的语言特性之后,这个问题就会迎刃而解。在 Python 中,万物皆为对象。
每个对象有 3 个属性。分别是:id,type,value。
id 就是对象的内存地址,可以通过内置函数 id() 查看对象引用的地址。
type 表示对象的类型。Python 也是有类型的概念。对于编译器或者解释器而言,类型可以协助确保上面那些电荷、字节在程序的运行中始终如一地被理解。我们可以 ...
总结是成长的秘方
时光荏苒,2018 年已经过去半年。
你年初制定新年计划,不知现在完成的进度是多少了?
不管怎样,应该好好总结下。
学习,生活,工作就像一场航行。我们这艘孤零零的小船在茫茫大海中飘荡着。
或许我们知道此次航行的目的地。但是航程会有各种突发状况。
这会让我们不知不觉偏离航线,进而影响到达目的地的时间。这时就需要导航工具,而总结就是这一工具。
善于总结是一件好事。在总结过程中,我们能对自己有个清楚的认识。
知道自己哪里做的不好,需要改进。知道自己哪方面值得继续保持。
曾子善于总结,在这方面可以算是宗师。
他的名言早传遍中华大江南北。
吾日三省吾身——为人谋而不忠乎?与朋友交而不信乎?传不习乎?
工作中善于总结,能保证我们的努力和付出不会白费。
从而避免成为“伪工作者”。
每天下班之前,我们可以以日报形式总结下今天的工作。
看下今天的工作内容是否有意义?看下今天的工作是否完成了?明天要做什么内容?
学习也是如此。
阶段性总结能检查自己的学习成果。
及时发现自己未知的领域,然后继续填坑。
这一个月来,我也是一直在总结。自己梳理之前的爬虫代码,后续会将分享出来。
特别提醒下,看别人的爬虫文章, ...
多线程爬取 unsplash 图库
我公众号文章的封面配图都在 Unsplash 上找的。
因为 Unsplash 是一个完全免费的、无版权的高清图片资源网站。
所谓的「无版权」是指这个网站上的图片由创作者自愿分享出来,完全免费提供给任何人作为任何用途使用。
Unsplash 的原话是「do whatever you want」,进一步说明是「你可以免费对图片进行复制、修改、分发,包括用作商业目的,无需经过允许即可使用」。
自己发现之前在寻找图片上还是挺花费时间的。
先在 Unsplash 上浏览图片,当发现觉得还不错的图片就会下载下来。
另外,下载图片还需要自己点击下载按钮。这确实挺花费时间。
现在自己学会了网络爬虫,是时候改善下情况。
1.分析Unsplash 网站采用瀑布流样式来呈现图片。
首页以开始只会呈现一部分图片,当我们滑动滚动条到底部时,网页才会继续加载部分图片。
这网站经常使用 Ajax 技术来加载图片。
针对动态渲染网页,我会选择 Selenium 来爬取。
但是,我这次为了追求高效率下载图片,势必要使用多线程。
因此,只能放弃使用 Selenium,转而通过抓包方式来分析网站。
我使用浏览器的 ...
安利两个 MongoDB 可视化工具
MongoDB 是一种 NoSQL 数据库。
NoSQL(Not Only SQL ),意即”不仅仅是SQL”, 泛指非关系型的数据库。
这两种类型差别之一是存储方式。
关系数据库以键值对存储,它的结构不固定。而关系型数据库以行和列的二维表格形式来存储数据。
所以非关系型数据库(如 MongoDB)不支持标准的 SQL 的语法。
如果我们刚接触 Mongo 数据库,对语法还不熟悉,想通过可视化方式来操作。
那么,今天我就给大家推荐两个 Mongo 可视化操作工具。
1.Mongo Plugin大多数 Python 程序员使用的编辑器是 Pycharm。因为 Pycharm 是一个非常人性化的 IDE 工具。
Pycharm 工具自带支持 MySQL、SQLite 等数据库的可视化工具。
但是还不支持 Mongo 数据库。
国外一位大神 dboissier 专门为 Pycharm 开发了 一款插件。它的就是 Mongo Plugin。
这让我们可以在 Pycharm 上对 mongo 数据库进行管理。
安装该插件也很方便,直接在 Pycharm 的【settings】-【Plugin】 ...
爬取《Five Hundred Miles》在网易云音乐的所有评论
在使用 Ajax 技术加载数据的网站中, JavaScript 发起的 HTTP 请求通常需要带上参数,而且参数的值都是经过加密的。
如果我们想利用网站的 REST API 来爬取数据,就必须知道其使用的加密方式。
破解过程需要抓包,阅读并分析网站的 js 代码。
这整个过程可能会花费一天甚至更长的时间。
问:那么是否有办法绕过这机制,直接获取网站数据?答:有的。使用 Selenium 库模拟浏览器行为来抓取网站数据,达到事半功倍的效果。
本文内容是利用 Selenium 爬取网易云音乐中的歌曲 《Five Hundred Miles》 的所有评论,然后存储到 Mongo 数据库。
1.前期准备本文中所用到的工具比较多,所以我将其列举出来。
1-1.SeleniumSelenium 是一个 Web 应用程序自动化测试的工具。它能够模拟浏览器进行网页加载。所以使用其来帮助我们解决 JavaScript 渲染问题。
接下来就是安装 selenium, 使用 pip 安装是最方便的。
1pip install selenium
1-2.Chrome 浏览器在爬取数据过程中, 需要启动 ...
爬取网易云音乐精彩评论
(一)故事的小黄花
从出生那年就飘着
童年的荡秋千
随记忆一直晃到现在
Re So So Si Do Si La
So La Si Si Si Si La Si La So
吹着前奏望着天空
我想起花瓣试着掉落……
小编猴哥有个爱好,喜欢一边听着熟悉的旋律,一边看着网易云音乐歌曲中的评论,特别是精彩评论。
评论内容,让人泫然流涕的故事,就是让人深思的段子。
(二)某天,猴哥突发奇想,想将自己平时喜欢听的歌曲的精彩评论爬取下来。以后就可以直接阅读这些评论,无须打开网页。
说干就干。
猴哥打开浏览器访问网易云音乐,随便点击某个歌曲页面。
现在大多数网站都采用 Ajax 技术来获取数据。所以需要先判断网页是否采用该技术。
有个谷歌浏览器插件名为 Toggle JavaScript,它能控制页面中 javascript 启用或者禁用。
正常的页面长这样:
当禁用页面 JavaScript 脚本之后,正常显示数据页面会变成一个空白页面。
因此,可以断定网易云音乐加载数据方式采用 Ajax。
Ajax 技术可以在不刷新页面的情况下,利用嵌在 HTML 文档中的 JavaScript 脚本向服 ...
618 购物节买什么?当然是书
时光荏苒,2018年已经过半。
又到一年一度的”618”购物节,是时候来一波”买买买”。
如果你目前想改变下自己,为自己的未来奋斗。
可以少买一两件衣服,少买一两箱零食,腾出一两百块钱来买几本书。
当当,京东正好有图书满减活动。
当当网的优惠还是相当大的,满200减100,满400减200,等同打 5 折。
如果书籍满足满减要求,就能优惠。
我个人也是买了一些书籍,坚持持续学习。
我推荐一些个人觉得不错的书籍。这些书籍基本上要么已经购买了,要么已经囤在购物车中。
另外,大部分书籍都是图灵图书推荐过。
1.Python 编程入门比较适合零基础,想入门的小伙伴。书籍用到的都是 Python 3.x 版本
2.Python 开发进阶如果小伙伴已经把基础知识学得差不多了,想进一步提高自己的能力。可以阅读进阶书籍。同样,书籍用到的都是 Python 3.x 版本。
3.数据分析单独把数据分析拎出来说,是因为数据分析挺有分量的。
4.算法通过阅读代码方式来学习算法是一个枯燥,痛苦的过程。因为需要很强的想象能力。我们换一种方式来,通过图片形式来学习算法 ...
Linux,越折腾越喜欢
今天这波分享可以说是自己热血来潮。
起因是自己收到某个问答社区小秘的问题邀请。
问题是《谁能给我推荐几本linux的书?从基础到进阶提高的linux书?》。
自己挺怀念大学那段折腾 Linux 的时光,所以就忍不住评论一波。
可曾没有想到,这一评论的阅读量有 1.5 W
有些网友想要鸟哥 Linux 的学习视频,私信我以及到公众号后台留言。
因此,就有今天这篇文章。
一是我分享下自己学习 Linux 的过程,希望各位小伙伴不要踩坑。
二是分享学习资料。
大学二年级,我课程中有一门专业课《操作系统》。
当时授课老师是我最喜欢的老师。他原先在北京理工大学讲课,后来到我们学校教书。
他不仅自己学识淹博,而且有丰富的教学经验,讲课方式生动。
所以同学们很喜欢上他的课,当然我也是不例外。
另外他姓龚,同学们觉得他和蔼可亲,就经常称呼他“老龚”。
我自己预习《操作系统》课程,真是看不下去。
书本内容真的是深奥难懂又枯燥无味。
后来上课,老师用以先实践后理论的方式来讲课,我们都听得入神。
我记得龚老师那时说过一句很经典的话:
《操作系统》主要是讲解 Linux 系统。而我们现在使用的 Wind ...
使用 Python 将数据写到 CSV 文件
我们从网上爬取数据,最后一步会考虑如何存储数据。
如果数据量不大,往往不会选择存储到数据库,而是选择存储到文件中,例如文本文件、CSV 文件、xls 文件等。
因为文件具备携带方便、查阅直观。
Python 作为胶水语言,搞定这些当然不在话下。
但在写数据过程中,经常因数据源中带有中文汉字而报错。最让人头皮发麻的编码问题。
我先说下编码相关的知识。
编码方式有很多种:UTF-8, GBK, ASCII 等。
ASCII 码是美国在上个世纪 60 年代制定的一套字符编码。
主要是规范英语字符和二进制位之间的关系。
英语词汇组成简单,由 26 个字母构成。使用一个字节就能表示一个字母符号。外加各种符号,使用 128 个字符就满足编码要求。
不同国家有不同语言文字。
同时,文字组成部分的数量相比英语字母要多很多。
根据不完全统计,汉字的数量大约将近 10 万个,日常所使用的汉字有 3000 个。
显然,ASCII 编码无法满足需求。所以汉字采用 GBK 编码,使用两个字节表示一个汉字。
简体中文的编码方式是 GBK2312。
那 UTF-8 又是什么编码?
这要先说 Unicode 了。
...