粉丝1.3万获赞9.0万

兄弟们,大家都听过爬虫对吧,但就是不知道他是做什么的,今天给大家啊,一次性讲清楚, 你们看过孤株一志吧,马仔对着电脑喊着爬字幕,煮资料,爬邮件, 但这个是违法的啊。今天给大家讲讲爬虫工作上的样子,还把入门要学的具体技术讲透,想入坑的继续听啊,我讲给大家听啊。 其实爬虫就是互联网信息抓取技术,提前给他定好规则,他能自动逛网页,爬数据,爬信息,不用人手动一个一个翻,效率直接拉满, 生活里面用处贼多。做电商的,想查同行的爆款销量数据,上千上万个品手动根本看不过来,爬虫一上啊,全抓过来, 哪个月卖的好,销量多,分析起来特方便。做量化金融的,需要抓过往的数据找工作啊,爬全网招聘信息啊对吧,按薪资来排序,甚至找低价商品,纯图片视频, 爬虫都能搞定,说白了就帮咱们高校撸互联网上有用的信息。 想做爬虫,首先编程语言肯定是 python, 上手快啊,爬虫相关的工具库还多是从业者的标配。那具体要学啥?新手入门其实门槛不高, 先把 python 基础打牢,掌握基础语法,循环函数这些核心内容就行。接着学爬虫核心库啊,请求数据的 request 对 不对, 解析页面的必复速谱和 express 这几个必学啊,能搞定大部分基础爬取需求在懂点简单的页面知识,比如 html 结构, 知道咋找想要的信息位置,就能够入门练手了。不知道怎么学的,可以看看我前面发的那一条,大家不要一上来就很复杂的,先跟着练几个小案例,比如爬个商品信息,爬个资讯列表, 熟练了再慢慢进阶。这里面提一句,爬虫本身是中性技术,技术本身是不违法的,但要是乱爬违反网站规则啊,偷爬公民的隐私,那肯定是出了红线的。 咱学这个技术是为了正经做事挣钱的,可不是走电影里面的歪路子。其实爬虫岗位就是把这个技术用在商业分析、信息整合上,帮企业高效拿数据。真没有那么神秘, 我就想问问大家有没有啊?早就想学爬虫的,却不知道从哪里入手的,或者对这些技术感兴趣的啊,大家有什么问题都可以问。

一天学习一个小知识,道友,今天我们讲的是网络爬虫,想知道大数据从哪来吗?秘密都藏在网络爬虫里,你刷到的精准推荐、查的行业数 据背后都有它。今天一分钟带你看懂网络爬虫如何抓取整个互联网。郑重声明,本视频内容仅作为正规网络安全技术的科普讲解,切勿将此类技术用于非法用途。打开卡里进行提权, 输入命令,进入工具,接着输入这个命令,对模块进行搜索,然后使用当前出现的模块,接着对模块进行参数的分配。首先设置需要扫描的网站, 接着设置现成数,最后输入命令执行,这时你就能够看到从网站中输出的各样的文档、压缩包、视频以及图片资源。想学习更多计算机小知识,欢迎大家讨论。

无论是预约抢购还是爬虫批量下载,我们都绕不开第三登陆,那么我们怎么样来通过协议爬虫的方式来快速实现账号的登录呢?今天就带大家来实战一下安排, 如果你也对前端逆向攻防感兴趣,老何我专门给大家准备了爬虫逆向实战的一个直播课,拆解目前市场主流的一些前端加密技术,还配套录制了全套的逆向入门学习视频,大家记得在粉丝群里面来进行获取,然后在这里话是要做一个登录,有个登录,来我们试一下啊,来输一个账号,然后输入一个密码,我们看一下,来点击登录,我们使用鼠标右键 点击检查,打开开发工具,然后在开发者工具当中啊来勾选到我们的这个到叉 hr, 因为像这里给大家讲一下,因为我们当前请注意啊,我们在什么情况下使用叉 hr 呢?对吧?可能会有些同学不太理解啊,给大家讲一下, 就是你可以看到当我在页面当中来点击登录的时候,它的页面是没有存在的,也就是说它里面的 dom 没有进行重新刷新, 对吧?他只做了一件事情,就是直接产生的一个动态接口来进行对后端来进行提交我们的账号的密码,那么像这种他大多数啊都是为我们的阿贾克斯或接宽瑞等相关的一个动态请求,那么在这种情况下,我们是可以直接在下方啊去勾选这个叉 hr, 对 吧?就是来抓他这种动态的数据包, 要把这个地方大家稍微注意一下啊,要把注意一下,然后我们像在这里,你看我们点击登录来点,当我们点击登录之后,你看像在下面,他是不是就给我们产生了一个动态的一个接口,在这个接口里面我们可以看到我们当前的密码在传输的过程当中是加密的,是一个加密的,我们当前这个密码是属于一个密文传输,对吧?一个密文传输, 那么我们在这里我们相当于说白了,我们就是需要来做一个逆向登录,那如果我们需要来做逆向登录的话,我们就要来模拟它的加密内容,对我们的密码来进行加密,因为在服务器端它所接收的密码是一个密文的,啊, 啊,请记,请注意啊,就是我们直接传明白的话,会导致我们请求服务器端会直接请求失败,所以在这个地方大家千万要多注意一下,明白吗?要多注一下, 好,那么在这里我们先来看一下,我们来分析一下这个网站,对吧?分析一下这个网站,看一下它的难度怎么样? ok, 那 么我们一般遇到加密的时候,我们第一反应是干什么,是吧?我们是要去做加密定位,那如果我们要做加密定位,对吧?有朋友想搜索一下, 对吧?非常棒,对吧?你们要记住啊,一般我们像在这里,如果说我们有看到像他这种,对吧?遇到加密的时候啊,我们的第一反应,我们是可以去尝试去搜索的,到,你看可以直接搜索,对不对? 那么在搜索的时候像这种它是 word, 它是比较泛的,那么我们有没有更好的方法嘞?对吧?我们还可以搜什么?就是关键字搜索法,对吧?它除了搜它对应的关键字,我们还可以搜索,比如像 int, 是 吧? int, 因为像 int 的 话,它是不是一个什么加密,对不对?对吧? int 是 不是加密?我们相当于自己去进行搜索, int 的 时候,我们有可能这个地方它的加密位置,对吧?也就是我们所需要的, 对不对?我们可以去尝试一下点击跳转,然后当我们跳转的时候,我们可以来打一个断点,它在这个地方会有调用我们当前的 intrap, 然后里面有个返回,对不对?我们打一个断点给它,我们来尝试一下,看一下当前这个 intrap 这个位置啊,它是否返回的是我们的加密的内容?来我们点击登录,点击登录, 不是,是吧?不是?好,那如果说他不是的话,那么在这里我们就发现我们通过关键字搜索法的话,就搜索不到,对不对?那么搜索不到,那么我们就要换一种方式,我们就来点击他后面的这个启动器,在他的启动器当中我们是可以看到有一个叫做请求调用归战, 对吧?这个请求调用堆栈是什么呢?对吧?我给大家讲一下啊。首先它这个只是属于请求的一个调用堆栈啊,说白了就是我们当前的这个接口在请求服务器之前需要经过一些 g s 函数或方法的处理,对吧?那么在这个时候,那么你看啊,就是你看当前接口在请求服务器之前,它是需要再经过一些 g s 的 函数或方法的一些处理的,那么这里对它来处理的这些 g s 函数和它的方法,说白了就是它的堆栈, 明白吗?这就是它的堆栈,所以你可以看到其实非常简单的,对不对啊?稍等一下,各位,我给大家发个福袋, ok, 那 么像在堆栈的体系里面,它会有一个比较复杂的逻辑,也就是目前在我们经常在做逆向的过程当中,经常会遇到的就是 promise 点 z, 对 吧?我们经常会遇到 promise 点 z, 那 么我们像如果说有遇到类似于像这种 promise 点 z, 这个叫什么?这个叫做 e 不 回调,对吧?它是一个 e 不 回调,对吧? e 不 回调就是说它里面可能会去回调多个方法来执行对应的任务,对吧?根据啊,你可以理解为是根据 对应的呃条件来执行对应的方法,那它是这么一个逻辑,就是有专门的方法来对它进来服务来进行回调,那是有这么一个逻辑,然后你可以看到,你看我们在当前的这个请求的调用堆栈这里,它是不是就存在一个像这种 promise 点 g, 看到没有, 是不是就会有一个 pos 点自己动一步?然后其次,我们当前的浏览器有我们所呈现的这个面板,他是从下到上的,也就是当前这个匿名这个地方是属于他当前的请求,你可以理解为就相当于是他请求的最后一个赞,当然他后面肯定还有啊, 但是我们根据当前的面板所观察到的,对吧?你可以理解为这个就是他的最后一个赞。那么我们做逆向是什么呢?我们做逆向,我们是要从上到下, 对吧?跟浏览器的执行顺序是反着来的,明白吗?反着来的,那么我们的这个步骤我们就叫做跟站,对吧?跟站或者说叫做堆站调试,明白吗?堆站调试或跟站,对吧?这就是呃,目前的第二种调试技巧。 朋友们,那么像在这里,你看我们现在我如果发现这里面有 pos 点 g 的 情况下,我该怎么做 啊?有没有同学知道的?我看一下大家有没有学,越学越回去啊?当我们如果说在调试我们的堆栈的过程当中,就是仅用这里,对吧?我们发现它里面竟然会有这种 pos 点进,而且它前面是比较相近的情况下,我们的第一反应就是先, 哈哈,硬着头皮分析是吧?正常的逻辑来讲,我们是应该先去看一下我们当前的加密是否由这个回调来进行生成,对不对?先进入一步,看一下 加密的内容是否由,对吧这个一步进行构成,是的,先进入一步,对吧?听风同学非常棒啊,听风同学看学的还是非常扎实的啊,学了很久了,对吧? 好,那么在这里你看我们遇到这种情况,你看我们就可以先进入到它的前面一个堆,你看有个 s 一 点 request, 我 们点过去,然后打上一个断点,然后当我们打上一个断点之后,我们将在页面当中点击登录,你看点击, 那么当我们点击登录的时候,他会在这个地方给我们来进行断点,然后断点之后我们不用去管代码,请朋友们记住啊,就是我们在调试的过程当中,我们不需要花费很多的时间去观察,呃,这个代码是干嘛的是没有必要的,我们重点的核心是看当前的调试面板, 在当前的调试面板当中,我们是可以看到,你看在这里他会有一个域名,你看你可以看下面的这个 base url, 或者说看这个 url 是 不是当前的请求接口的路径, 是吧?然后上面这个是不是他的域名,对吧?他的域名你可以看到在这里他会有一个,这个叫什么?这个叫做请求对象,那么在当前的请求对象当中,我们可以去观察一下它里面有没有我们要的,好像没有, 我们看一下 u l, 我 们在我们的控制台里面可以去输出我们的 i 点 u l, 那 么在当前的 i 点 u l, 大家有没有发现就是我们当前哦,其实上当前的 pass word 这个密本啊,是已经处于生成好的状态, 对不对?那么我们就可以证明一件事情,我们当前的加密内容不是由异步回调来进行构成, 是不是啊?朋友们,这地方大能跟得上吗?能不能跟得上? ok, 那 么在这里记住这个异步是非常重要的,可能现在很多朋友说实话,可能有些同学之前有学过,很多同学觉得有点难,请记住,目前在市场像这种异步调试,将近可以解决我们百分之八十的加密定位的问题, 哼哼,对吧?目前在市场我可以明确告诉各位,就是我们目前做加密定位这种问题啊,我们将通过堆栈调试的分析方式,我们将能解决百分之八十的网站,那包含国内的基本都是 ok 的。 你像目前在市场,你像五 s 盾或者像阿卡曼这些技术,其实说实话它其实都是可以通过它来进行加密定位的一个确定的, 那么你像一些特殊的,比如说像瑞数,那么像这种我们可能就需要用后缀,是吧?可以用后缀,然后像 gsp, 我 们可能就会用到条件叉装,所以啊,它有很多技巧,里面还有很多技巧。 好,那么我们来看,那么如果说在当前这个地方,你看就是我们在当前所打断点的这个地方,就是在进行异步回调之前,我们的加密已经生成,那么怎么办?我们只需要向上推,一个一个推就可以了,你看往上点击,对吧?往上推,你看往上推, 那么在往上推的过程当中,我们会发现在这个地方,你看就是看作用域,有没有发现在作用域当中他单独的出现了一个变量,包含我们的密文。记住哦,出现这几种情况,你们就要停住你们的调试逻辑,就要去看一下代码了,出现哪些情况呢?第一个出现名门, 对吧?第二个单独的某一个对象或变量有进行密文的赋值, 对吧?某一个对象或变量它有进行了我们的一个密文的赋值,那么在这种情况下,我们就需要去观察一下我们的代码,那么你看像当前,你看它这里是不是出现了一个一,有个一变量,这个一变量它里面包含的是不是我们的密文? 这是我们输入的密文,对吧?那么在这种情况下,你们就不要继续向上一步了,没有啊,就直接去看一下当前的代码,观察一下当前的一在哪里, 那么我们可以看到朋友们当前的一在哪里?它是一个什么?它是一个参数,对吧?它是一个行参啊,我们可以理解为它是一个行参,那么如果说它是一个行参,那么我们先在这个地方,我们是不是可以继续向上一步, 对不对?我们可以向上一步,我们去观察一下,你看向上一步走一个 h, 那 么当我们从事在这个地方进行上一步之后,大家请看我们在这个地方是不是它的入参的位置, 那么当前他入仓的位置是由这个 y 值来处理了我们里面的铭文密码,然后变成密文,对不对?你看那么这个地方是不是就是当前的加密的位置,你看 是吧?中间是铭文密码,你看这里我们很明显的可以看到他就是通过这个 y 方法,由这个 y 方法来对我们当前的铭文来执行加密,然后输出这么一堆密文, 我们是不是就找到它了,对不对?我们是不是就找到它了?然后当我们找到它之后,那么现在我们将进入更难的一个步骤,就是做代码逆向分析,对吧?看一下它是否为我们的标准算法以及标准算法的定义到底是什么,我们来看一下。 ok, 那 么在这里当前这个 y 方法是不是我们主要的加密方法,我们可以点过去,其实我们点过去的时候,大家有没有发现当前的 y 方法的话,是比较直接的,直接在上面有等于进行复制 w 点 s m i, 点 do int 来进行了一个加密,那么像 s m i 是 什么算法,有朋友知道吗? 有朋友说是国密,对吧?哦,国密是没有问题的啊,但是跟大家讲一下,一般正常划分算法叫做对称加密或者非对称加密,以及消息栽要加密。我问一下朋友们,有朋友知道 s m 二是属于哪个体系里面的吗?对称,你确定吗?有没有不同的答案? 有的人说是栽药 s m i, 对 吧?非对称,非对称非常棒,是吧? s m i 的 话是属于非对称,为什么? s m i 加密算法它是有什么?它是具备的?是公钥加密,私钥解密, 对不对?是吧?它是公钥加密、私钥解密或私钥加密、公钥解密对称加密算法代码是不是直接就是密钥啊?它只有密钥,你像 s m 四, s m 三,是不是为我们的对称加密?消息栽要,你像 s m 三,是不是为消息栽要由哈希系列进行加密构成, 对不对?没关系,答错了,朋友们,也没关系,记一下,明白吗?答错了,朋友们,记一下啊,就是你们要记一下它里面这些特性,那么在这里你看我们可以来测试一下。第一个我们要来确定当前的是否为标准加密算法, 是吧?他是有没有可能他不是标准的,那不就很尴尬吗?是吧?所以我们在这里给他打上一个断点,然后打上一个断点之后,我们将在页面当中来进行重载,也就是重新调试。看啊,我们重新输入一个密码来点击登录,看啊,点击登录, 当我们去点击登录的时候,同学们有没有发现一个很尴尬的情况,就是当前代码位置他不会进行断点,你看是吧?他不断点,那么我们在这里打个断点,你看我们点击他是会断点的,有没有发现?但是我们在这里他不断点, 对吧?有朋友知道为什么吗?那为什么它在上面这个地方,它很明显是被调用的,但为什么它不断点,对不对?这里朋友们请注意了,这个叫什么?其实在这个地方大家有没发现它这个后面有个点 z, 是 吧?有个点 z, 点 z 是 代表什么含义嘞?点 z 其实就是属于回调,它这个地方其实有牵套了一个异步, 是吧?点 z 它是属于我们的 promise 点 z 嘛,对吧? promise 里面的一个,也就是说我们在前面这里所构成的是为一个 promise 对 象嘛,你看是不对,构成的是一个 promise 对 象,它由 promise 点 z 来进行了一个回调,那么在这里我们其实如果这样去分析会有点麻烦,所以啊,我们最好打到点,打在 y 的 上面,你看啊,我们打在这个 y 的 这个前面,你看,我们试一下, 你看,然后看啊,当我们当前断点断在 y 的 前面的时候,不是 a 啊,是 y 啊,不要搞错位置了,然后点击下一步,那么当前步入就会步入到他看,没有,因为他是由一个点进一步回调的一个方式,如果你直接在上面进行打断点,我告诉你他这个地方他是不会断点的, 所以你们注意一下。好,那么在这里我们当前需要来进行测试,我们要来做什么样的一个测试呢?当前里面的加密内容是否符合当前的 s m i 的 一个加密标准,对吧?我们来选中它,点击跳转进入该方法,那么在该方法当中,说实话啊,朋友们,这些代码我们是看不懂的, 朋友们,你们是不是看不懂,你看,我们其实都看不懂,因为这个地方我们也不清楚它是否为标准的,那么有没有什么好的办法嘞?朋友们,我们可以这样做,找一个在线的 smi 的 一个测试,在线 smi, 我 们来测评一下,看一下当前它里面的内容的加密结构是不 ok, 你 看这次是一个 smi, ok, 那 么像,在这里我们来尝试,首先 n 被加密内容,哎,先把它清空,你看啊,先是一个 n, 然后再是一个下划线点 value, 它这个地方有点像什么私钥,对吧?它这个地方有点像私钥啊,你们注意一下。 好,那么在这里你看,首先我们在这里找到这个是被加密的内容,然后我们进行测试,看一下当前这个地方是否为私钥啊?是否为私钥加密啊?把这个串给删掉啊。来,我们进行私钥加密,来点击速度,然后进行加密, 它这个好像不能,我们试一下啊,它这个加密的内容好像不对,我们试一下它这个地方,我们这样测的话好像有点问题啊。朋友们,我们来看一下它当前的加密结果, 那它里面是有点问题的,对吧?是有点问题的,那么在这种情况下,我们可以看到,要么就是我们当前测试有问题,对不对啊?可能我们当前测试,因为它这个网站像这种非对称加密的话,说实话它这种在线测试说实话会有点尴尬, 那你们有更好的方法 ai 分 析,看,我教你们各种技巧,这种技巧非常重要,你们在未来都可以使用到。 把伞都勾去卡住了,哪个把伞啊?你?逆向跟网安其实很多都是同步的,都差不多,来我们来看,那么在这里我们怎么办呢?其实我们可以学会做这么件事情,首先当前的执行的主逻辑是不是 l n 啊?朋友们, 是吧? l n 我 们可以看一下这当前的主体的部分是在于哪里?看这个地方是为它的一个大概的一个主体部分。那么我们现在可以把当前这个主体的一个逻辑啊,你看我们可以把它折叠一下, 大概就是这个部分,对吧?我们把它复制下来,然后把它复制下来之后,或者我们直接就是当前这个 l n 是 为我们主方法,对吧?我们把这个 l n 方法丢给 ai, 帮我分析这个代码是什么加密,那么像在这里你看它可以我们弄某爬来玩的。第六个什么某爬啊? 你看我们可以看到它这里话其实采用的就是国密的 smi 的 一个算法,叫非对称加密,对不对?你可以看到它里面的加密轮次以及加密内容其实都是 ok 的, 那么在这里我们可以尝试一下在本地去进行一个实现,那马上爬到第六关, 那你搞什么呀?等下给你们第六关,那么简单,来我们创建一个文件,这个是某文录 平台,对吧?嗯,映像登录,然后我们在这里来新建一个 gsr, 来新建一个 gsr, 好, 那么在这里你看我们像在本地里面它会有一些第三方的一些库,我们通过 node gsr 可以 来实现一下, 对吧?来,你看啊,我们首先第一步当前浏览器它建议我们是,你看当前 ai 是 建议我们比如说使用 sm 杠我们的 trap 第三方库来直接实现,对不对?那么在这里我们去进行声明,叫 sm 等于我们的锐块,然后我们在这个地方来导入 sm 杠 trap 点 sm 二, 这是不是一个当前的一个 sm 二,那么在这里我们去进行相对应的一个加密,就是首先被加密的内容,然后公钥, 对吧?这个是我们的功要,对吧?然后还有个一,那么在这里我们当前使用我们的 s m i, 它采用的是什么?我看一下采用的是一个度的一个方法吧?度 in trap 吧,是吧?采用的是度 in trap, 那 么我们像在这里我们就直接来使用 s m i 点度 in trap, 然后来输入我们的 part, 后面直接给个一,那么当前我们来看一下我们当前的这个内容是否 ok 啊?朋友们来我们来试一下, 没有问题,对吧?你看我们是不是搞定了?所以其实在很多时候你看你你可以发现这个网站是非常简单,这种就属于入门级别的,对吧?入门级别的我们的非对称加密算法, smi 加密算法, 是吧? smi ok, 那 么在这里你看像这个,其实说实话,如果说你们没有这种算法的经验的话,你们也很难判断出来,对不对?其实你要想现在很多人可能我们可以通过 ai 来分析出来, 但是你要想一下,其实你如果通过 ai 分 析,有时候 ai 啊它也不会给我们分析的那么明显,它里面有些内容可能还是分享不出来的,它还是需要朋友们对算法有一定的基础,一定的概念。首先你看我在这个地方,我是其实我在这个地方我就能够看出来它大概是为 smi 了,明白吗?我们就可以在本地直接来做它的一个测试,好,把断点全部关掉, ok, 搞定了。

这是某宝的热卖网,怎么样快速的构建一个基础爬虫来实现数据的自动下载呢?五分钟的时间来教大家如何进行工具的一个快速解决。那么像这个网站它到底是采用了一个什么加密呢?我们来看一下啊。首先我们可以打开在下方的开发的控制台里面会有个网络, 会有个网络,如果你也对前端逆向攻防感兴趣,老胡啊,我专门给大家准备了爬虫逆向实战的一个直播课,拆解目前市场主流的一些前端加密技术,还配套录制了全套的逆向入门学习视频,大家记得在粉丝群里面来进行获取,然后在网络界面里面,我们去勾选我们的全部啊,筛选全部,先把暂时把当前所记录的 logo 信息来把它清空 好,那么我们现在在页面当中,你看这里我们是可以直接来进行搜索啊,会有个对应的搜索接口,对吧?我们来直接进行搜索,比如说我们搜索一个女装来进行搜索,那么当我们像在上方去进行搜索的时候,我们像在下面,你看他就会来记录我们当前的客户端跟我们的不计,他们之间的一些数据的一些交互, 对吧?这不都能够记录,看没有都能够记录,那么当它记录的话,我们现在可以看到啊,它里面是有很多接口的,那么我们当前的重点我们是需要来找一下我当前所需要的这些数据,对不对?你看我们是需要当前这些数据,看一下这些数据是在哪个接口里面, 那么我们可以来尝试来搜索一下它对应的关键字,来找到它的数据所包含的接口,你看我们选择把这个点高亮来选中,比如说选中一个名称,然后在这里我们进行搜索啊,比如说我们来搜索一下,是吧?这个是高尔夫夏秋凉啊,什么一个防晒的,一个树干的一个袖子,是吧?来我们在这个里面,你看它这里有个放大镜, 看没有这个放大镜,把这个放大镜给打开,然后进行搜索来搜索,当我们搜索的时候,那么我们像在这里我们就能够快速的去找到。你看我们当前所需要的这个数据,他是不是在这个二点零的一个接口里面?你看 他是不是在这里?朋友们是不是在一个二点零的接口这里面,对吧?这个是一个是这里是一个技巧,我给大家讲一下啊,记住啊,就是我们在很多时候是吧?就是我们比如说是吧很多时候他有 网页,他的一个网络当中记录了多个接口,是吧?在不清楚, 是吧?数据在哪个接口里面,那么我们可以怎么办呢?可以来直接进行内容的搜索,把内容的搜索,通过内容的搜索,我们就能够快速的来找到我们当前的数据所在的一个接口,你看是吧?可以点过去,那么当我们点过去的时候,我们可以看到他这个地方会进高亮,看见没有会进高亮来在这里 收获进行高量,好,那么像在这里我们现在来尝试来构建一个 python 的 一个 request, 那 么像在今天我们将用到很多的一些工具。首先我们今天啊我们会用到一个 ai 工具, ai 工具的话,目前 ai 可以 说是已经算是比较成熟了啊,你们可以根据咱们的自身的一个需求去使用,比如说目前像国内的话,我建议大家可以使用豆包,其实豆包呃,非常的 nice 啊,可以使用豆包,然后其次你们也可以使用像个 google, 或者说像这个谷歌的我们的一个迷你,是吧?都是 ok 的 啊。 那么在这里除了这个工具之外,我们还会有一个工具,这个工具是一个目前用于专门的来转我们的 c y、 l 的 工具,这个是主要的核心,就是通过 c y、 l 的 一个方式来把它转变成各种 的代码,比如说有 c c hop, 以及还有像 go long, 以及还有像我们的 p h p, 还有像 java, 以及还有像我们的 python, 还有像 r 等等等等相关的编程语言,它都能够来把它转变成对应的格式,那非常的方便。 那么在这里你看我们当前请求的这个接口,在这个接口这里啊,右击点击复制里面的 c u i l, 我 们记住复制的是这个 b a s h, 也就是 b s 这个格式,来把它复制好,复制 ok 之后把它粘贴过来,你看那么在下方啊,它就会直接来帮我们来构成一个 python 的 request, 那构成一个 python 的 一个脚本看,没有啊?你看是不是直接生成了一个 python 的 脚本,那么我们在当前在生成的这个 python 的 这个脚本里面,我们可以在我们的代码的投入中去新建一个 js 文件啊,你看我们新建一个文件夹,对吧?某宝热卖网,对吧? 然后来右击新建一个 python 文件,把当前的 python 文件把它复制过来吧,是 ok 的。 好,那么在这里各位请看一下朋友们,我们当前寄予我们的 request, 你 看在这里是不是就是有分别有核心的几个逻辑?首先你看在这个地方,第一个我们的 id, 是 吧?你看这个就是我们的请求头,对吧?用模拟浏览器的请求,然后这个地方的话代表的是我们的 partner, 也就是我们的请求参数, 然后像在这个地方它发送了一个 get 请求,是吧?你看这里是不是有个点 get, 它通过我们的 request 来发送的?对当前的这个某宝热卖网的商品的接口来进行了一个 get 的 一个请求,并且携带了我们的请求参数和我们的请求 cookie, 也就是用户信息,还有我们的 id, 我 们的头部信息, 是不是啊?那么在这里当前请求请求 ok 之后,我们可以看一下啊,当前在这里我们对它来发送了一个请求,对不对?这种就属于无界面的,基于协议来直接进行请求。然后我们可以看一下当前网页,也就是当前这个网站,它给我们所返回的数据是一个创, 看啊,它是一个创创,那么我们在这里直接给它跟上点 t s t test, 然后使用 word 来进行我们的 response 的 打印,那么这样你看我们当前这个程序就能成功的来请求获取到当前的一个页面的数据,对吧?只是说我们当前这个数据还没有清洗,对不对?

爬虫逆向实战教学系列第十七期某宝商品数据采集,今天我们来看的是淘宝热卖的商品数据采集,同样也是通过右键去选择检查,打开开发工具,打开之后进入到网络面板当中, 那咱们这里去先清空一下,去翻一下下一页的数据,下一页好加载出来了,下一页的数据包,我们来搜索一下,比如说这个地方是一个国潮活跃 来搜索国潮国一好更多 g s 逆向实战视频、海量项目源码、学习素材、疑难解答可以在这获取。搜索发现在这个数据包里面,那么这个数据包来看一下是不是包含了全部的商品数据,这里是他的一个名称,下面会有些其他的数据,这里是一些价格之类的商,这个商家之类的一些信息, 那来看一下。确定了数据包之后,我们来看这里有个散值,那么这个散值它是一个所需要去逆向的一个参数,它是加密的,我们就需要在本地去生成这样的一个密文值,而再来去斜着它这个密文值去对它做请求之后才能去得到正确的数据。那我们来看一下这个数据包,它的一个启动器,这里有很多赞, 但他都是在 index 点 g s 里面的,为什么进入到这个文件当中,在这里去搜索这个参数的名称,他这里竟然没有混淆,我们就直接搜一下看一下啊, s i g n 在 这里能够搜到二百零八个,那太多了,那再给他加个权重,就加个冒号,等号之类的,冒号以后就只有九十个了。 来从第一个开始找,第一个在这里算他为 l, 那 么 l 在 这里去生成,我们这里可以给它下个段点。 第四个名称不对,第五个名称不对,第六个名称不对。第七个这里他是 n, 六四三幺零,这个东西看起来其实不太像这里智能,但咱们再给他下段点好,再来去往下面跟这里也是名称不对,跳过好,那就没了。到最后这个了,第一个那就再来去让他翻一页看一下,翻下一页好,断在了这个位置。 首先有个 r 点 talking, 它什么东西?它这个应该是个令牌,这个令牌在一定时间里面是固定的,是不会变化的。 u 是 一个什么?六 day, 它点歌 time, 时间戳 s, s 是 在这里去生成的一个值,应该是三元预算之后的一个值, 这个是判断它是真还是假,那么应该是为 false, 就 会得到它。下面是这个 app key 值,应该是因为 s, 那 就说它也是固定的,这里都为假,那就是一直都为它,给它固定好就可以了 啊。再是这个 n 点 data, 那 么这个 n 点 data 是 这样的一串值,这个值还有什么 power 之类的,我们来看一下它这个地方有点像什么,刚刚在这里所看到的这个有个 data 值在这里,那看起来就是它呗, app, id, power 等等最长串,那就是它,那整个是将它们这几个拼起来,得到了一个铭文值之后再去交给 c, 是 吧?这个 c 函数能够得到什么?能够去得到一个密文值,能够去得到这样的密文值,它这里是没变化的,那说明它底层是没有去做 那种变化的东西的。那看下这个 c 函数,既然这都已经知道它的参数是什么呢?就看它函数里面是什么了。 函数里面在这个地方是一个 c, c 可能是这样的一个大函数,到这一块这个是 c, 那 他是维他的这样的一个逻辑,这个逻辑是 d, d, d, d, s, w 这样的一个 b 什么的, 那他应该都是在这里面的 d 函数,这样就套了其他的一些函数,那你把这个 c 函数给他扒下来之后,去给他按照对应的逻辑给他传进去就好了,传进去拼接之后呢,十就可以了, 我们来看一下这里是在这个地方,是吧?把这个东西传给那个 c 就 可以了,而且你会发现他在这里所生成的这个密文值, 我们可以看一下他的一个长度是多少位,长度是三十二位,三十二位又是零到九, a 到 f 的 组成。我们可以去尝试用 c 去加密一个字母串的一二三四五六,一二三四五六,看他是不是一一零 a, d, c, f 八八三 e, 这个是一个标准的 md 五加密, 我们可以看一下这里一二三四五六,它就能够去得到一个一一零 a, d, c, f 八八三 e, 这个是一个非常典型的 md 五标准的一个加密。所以它这个地方你甚至都不需要去扒代码,你如果说想通过 pass 这些,就可以通过那个发行库给它,直接通过 pass 里面的 md 五加密去给它加密,也可以 你去通过扣代码的形式去扣这个 c 函数也是没有问题的,它整个实现下来,其实这里,比如说我这里是通过扣代码的形式给它扣出来的,这里是那个 g s 文件,就是一个 c 函数,再拍去给它,通过 x e, e, c, g s 这样的库给它预定义一下,去调里面的函数,去给它构造一下对应的一个 参数,传进去加密就可以了,最后跑出来的结果能够去得到。等一下这里我们可以看一下它的一个点 test 右键运行啊,它这里就能够去得到对应的一个正确数据了。所以这个网站它用的加密就是 md 五,它的一个代码也没有去做混淆,也没有去使用什么 wifi 这样的一个加载器,还是比较简单的。

挑战爬一百个网站,今天是懂车帝汽车数据,我们今天做的话就是把它的一些基本信息给它拿一下,就是关于这些车辆的一些信息内容, 就有很多,有些人的期末作业啊,就是关于这种二手车数据采集的,那我们今天就给大家讲一讲这个案例啊,怎么去做好。那我们在这个页面当中,我们先打开开发者工具啊,然后选择咱们这个网络,点第二页啊, 让它加载第二页的数据,然后的话我们再去搜啊,搜它的一个内容,点击这个搜索按钮,然后去搜它的名字吧,比如说我们这个奔驰 glc 二零一八款, 对这个话就它的一个标题,那我们就一搜的话,你就可以看到我们数据所在的位置了,点这个啊,这个话是我们的搜索按钮啊,第一步点击搜索按钮, 然后第二步输入搜索内容回车,这个内容的话你可以以什么呢?我们就是以标题中的一部分啊, 标题中的啊,一部分内容可以不用全部复制啊,就收一部分的话也行啊,也可以。 然后回车之后的话,你看这里话有一个什么呢?一个 list 啊,这个话就是我们的一个车辆信息的一个数据接口,通过这样基本步骤的话,我们可以找到我们所需要的数据,就在这个里面,找到之后的话,我们点进去看一下啊,看一下首先他返回的响应数据是什么样子的,那这里面的话就包含了我们相应的车辆信息,一共有多少条呢?我们来看一下, 一共是从零到我们的五十九,就相当于是六十条的数据信息啊,就我们整个页面的话是六十条的一个信息内容,然后网址的话是他啊,是一个 pose 请求,对不对?那我们在这里面看一下,那他需要传递一个表单,数据也是全国的啊,全国的, 然后他的一些请求头参数,哎,我们也是可以看得到的哇,这是我们相应的一个接口啊,相应的接口,接口的话你找到之后你就就看这几个就行了, 就我们抓包找到接口之后你就看这么几个。第一个请求网址是什么?请求方法是什么?请求头的一个参数有哪些?以及他返回的响应数据是什么样子的啊?还有的话就是他的一些参数。 预览的话就是预览响应数据效果的,给大家都写一下啊,这个响应的话就是服务器返回的响应数据。预览呢,就是预览数据效果的,预览响应数据效果的。 嗯,载盒的话那就是我们的相关参数啊,就是请求的参数,就在这个载盒里面。我们来写一下发送请求三个点,一个是模拟路由器, 还有个呢,请求网址以及发送请求啊,这三个基本东西得用个字典去解说啊, 就相当于我们把这里的话,呃,它的一些它的 cookie 啊,它的防盗链啊,然后它的 u a 我 们给它复制过来,放到代码当中的话,需要用一个字典去接收,我们右键啊,粘贴,然后留什么呢?留这几个啊,哎呦, 好,留这三个就行了。 cookie 的 话是什么呢?用户信息 常用于检测是否有登录账号,但是登录与否的话都有啊,都有。咱们的一个 cookie 里面登录账号的话,它也会有一个 cookie 的, 这个 reform 的 话就是防盗链啊, 防盗链它就是告诉服务器, 服务器我们请求的网址从哪里跳转的。一般情况如果说你遇到四零三的话,遇到四零三可以添加这个啊,可以添加这个 rephone 防盗链的话,呃,大多数情况是可以去解决那个问题的。如果说是遇到四零三的话,状态码, 然后 us agent 的 话, us agent 的 话就是我们的用户代理表示浏览器 或者是和设备的一个基本身份信息啊,啊,这个话就是我们这三个参数分别所代表的一个意思啊,所代表意思你就直接给他复制过来就行了。复制过来构建成这种箭指队的一个形式,也就是我们字典的样子。 ok, 那 我们请求网址的话,直接给他复制就行了啊,给他复制一份 要, ok, 那 发送请求的话就多一点点东西。导入的话,那你就直接 import 导入就行了, 导入数据请求模块, import request 啊,导入进来,你像我们这个链接,那这里不是有个问号吗?有个 a i d 等于一个幺八三九,然后 app 内等于这个啊,这个 pc 啊,外部 pc 对这个话是属于他的一个查询支付串参数,那我们破折请求的话,他那个表单数据是在链接里面看不到的,你在这个载盒里面才能看到,那就像在这个地方, 是不是那一个是什么呢?查询支付串参数就是问号后面的内容,然后表单数据的话,他这里就是一个隐藏的,他就是隐藏起来的。所以我们去发送请求的话,你肯定是需要添加什么呢?他的一个表单数据啊,对称 好,它的表达数据的话,我们就直接复制一份,直接给它复制过来, 那这是它的表达数据,那直接复制过来,然后我们请求的话就 request 点上什么呢? pos 请求域二等于域二,然后我们的一个 data 等于 data, hash 等于 hash 啊,等下来是,等下是,然后再用个变量去接收。当然有些同学会问了,那这个为什么不单独构建呢?因为我们这个 aid 和这个 app 链的话,在链接里面就有了,是不是?你看在这个链接里面已经有了啊?如果说你想单独构建的话也可以,你就把链接里面的删掉,然后我们单独用一个什么呢?长元字串啊,长元参数 performance 啊,你也给它复制一份 是不是啊?单独写的话,那你这个地方就要传,就你单独构建了呢?那你请求的时候也给他把这些参数给他传进去。第二步啊,获取数据了啊,获取数据,你看我们这里响应数据返回的是什么?把这种花括号包裹起来的, 像这种东西的话,我们就直接获取它的一个接收就可以了。接收数据,接收 data 等于什么呢? response 点上一个接收 啊, print 打印一下,看一下我们的数据有没有返回啊?这个地方的话得打印看一下数据返不返回啊?是有返回的吧?数据是返回出来了,返回出来的话,那就很简单了啊,这些数据返回出来那就比较容易了。那我们解析数据的话就很简单啊, 我们想要的数据在哪里?在这个 data data 下面的一个 info list, 对 不对?它是有两层的,对,我们首先啊,通过自领取值提取什么呢?提取车辆信息所在的一个列表, 它列表是哪一个?就这个 info list, 对 不对?那我们用个 info list 接收一下它 info list 是 从哪里来的? 是不是 data 下面的?把先取 data 返回冒号右边的这些数据,然后返回冒号右边的话,它还是个字典,然后我们想要的数据在哪里?在这个列表里面,对不对?那就再取它的一个 inflist, 那 这样的话,我们就相当于把这个, 把这个列表啊,把这个列表给它取出来,那这里列表里面的话,一共有六十条的车辆信息,是不是啊?那我们就可以通过什么呢?负循环便利 提取列表里面的元素,就相当于把这六十个东啊,把这六十个车辆信息一个一个往外拿, for index in 我 们的 info list 啊, printer 打印一下, ok, 我 们前面这句话不打印了啊,来运行,看到没有?这样的话,我们车辆是不是出来了?车辆相关信息是不是有了啊?有了之后的话啊,有了之后的话,我们为了方便取值,咱们可以导入一个什么呢?格式化输出的模块 from pprint import pprint, 因为如果我们用这个 print 去打印这种字典数据的话,你会发现它是在一行里面,看起来不是很方便。如果我说我们通过一个 pprint 去打印,我们就打印一个来运行一下, 你看他会把我们把这个数据给他进行一个展开啊,就把这个数据就像我们这这里一样啊,就是给他展开,能够看到他相应的一个箭矢队的一个形式啊,就更方便我们去取值啊,更方便一些, 对不对?啊?那我们就在这个循环当中啊,在循环中提取具体的车辆信息,然后保存到一个字典里面,我们也给他放到一个字典当中,这个保存字典的话是为了后续的保存做准备啊。那我们来个 d i t 啊,首先的话这个是品牌啊,就是我们的一个品牌 index 的 路虎嘛?品牌那城市的话是青岛啊, 这个是城市,就我们看到什么就取啥,车辆 id 的 话我们就不要了啊,这个 id 啊,品牌 id 和车辆 id 的 话就不要了。然后这个 carline 啊,这个的话应该是属于它的款式,是哪一个款式的, 对不对啊?款式是这个什么 p 二五零啊,然后这个珍藏版自营的,这个店铺性质的话是自营的,因为它有一些是,那就是这一款车,应该是这一款车, 它有一些是自营的,有些是那个,这个自营不自营的话我们就不要了啊,应该是这个啊,然后车辆的时间是,车辆购买时间是我们的二一年 打,那我们就购买时间打,购买时间的话是二一年的啊,二一年的。那这个应该是车的年份,车的年份 啊,车的年份,这个应该不是购买时间啊,这个的话是车年份吧,我就直接给个车年份,就是这一,这是哪一年的?哪一款的?这是二一款的嘛?二零二一款的, ok。 然后这个话是他的图片啊,这个是他的一个图片,这个图片你要的话你可以取一下,不要的话就无所谓了,那我们就不取了。 嗯,还有什么呢?揽胜新迈,哎,这个是品牌路虎的,这个是款式,哪个版本的?然后这是哪个车型吧?那这个话应该是属于车型啊。 好吧,品牌车型款式 ok, 就 这样子吧。还有什么呢?啊?它的标题啊,这是整个的标题,整个标题如果说需要的话你也可以取一下。 好,那现在问题来了啊,好像我们基本的数据是拿到了啊,像他的这些基本东西呢?但我们还有一个比较关键性的东西,就是什么呢?他买的年份还有他的一个价格是不是没有看到?他买的年份和他的价格是不是没有看到, 对不对?然后这个话是过户次数啊,这个是过户次数,过户次数的话我们可以拿一下过户的一个次数, 它零的话就是零次啊,零次。 ok, 好, 我们现在目前的话,这个地方的话有没有?呃,什么疑问?应该是没有的啊,因为这这方面的话都是属于咱们 python 基础语法里面的 啊,属于 python 基础语法里面,我们我们这个曲解析数据曲值的话就是用的我们的一个字典曲值,还有负循环嘛,对不对?这个的话就是 python 基础语法里面的内容了。 好啊,我们现在的话现在遇到一个问题,就是什么呢?它的价格我们并没并没有看到,二十六点三八和这个六十点八零的话是没有看到的,对,没有看到的,但是呢,我们这里有一个非常关键性的一个 price 啊, price 的 话就是价格的意思嘛? 对,这个话就是一个价格。那官方价格,官方价格的话不就是六六十多万吗?然后这个话就是我们的一个啊,售价啊,售价,打售价,对不对?还有他的一个标题,抬头就是你看这里是不是有竖线? 好吧,但是呢,我们所得到的,我们所看到的数据,它是这个样子的,解析数据的时候,你会发现我们的一个价格数据信息并不是正常的数字内容啊,就没有直接给数字给你,而是做了一个加密的一个处理。那这个字体加密怎么去解决呢?它这个的话是一个 unico 的 一个编码, 我们复制一份啊,那我们找一个啊,就这个 uniq 的 一边嘛,啊,我们给它转中文啊, uniq 的 转中文,但你转出来之后的话,你会发现它是返回的是这种方框啊,那怎么去解决呢?在我们的开发者工具当中选择这个字体。 对啊,但这里没有,没有的话得刷新啊,就是你,你在这个开发者工具当中去选这个字体啊,但这个地方是没有的,对不对?那我们得刷新一下, 得刷新一下网页才有啊,得刷新一下。 嗯嗯嗯, 那 找找找这个字体文件就行了,或者说你要你可以,如果说你实在不能够确定它是具体用的是哪个字体文件的话,呃,我们也可以通过这边去看啊。 嗯,字体字体文件,你可以通过这边去看得到它的一个放的, 通过它的这个样式,你可以看得到它的一个具体的使用的一个字体文件,但其实的话,呃,问题是不大的啊,为什么呢?因为它有时候会有多个啊,多个字体的一个文件版本, 它其实有些时候的话是对应不同的一个版本啊,就是网站的话有多个字体的一个文件,它有时候要适配不同的系统啊,这个的话不就对应的这个网页链接吗?这两个的话随便哪个都行,都可以一样的。我们把这个字体文件给它下载下来, 下载下来之后的话它会有一个 w 啊, w o f f 的 一个文件,这个文件的话需要特定的软件才能打开啊。 啊?我们来打开一下。 ok, 那 那这里面的话就是我们相应的一个字体了,对啊,它上面的话就是对应的一些码点啊,就是我们可以看到它的一些码点, 那他相应的一些码点之类的一些东西啊,对不对啊?五八五八四二五啊?五八四二五,然后五八七零零,然后五八四六七, 然后五八五二五打对的是零一二三四五六七八九。找到这个的话第二步的话其实就是构建印刷规则。懂车帝的案例的话就是你可以手动构建,他主要是纯数字啊,因为纯数字自己加密的话就是零到九啊,然后他里面的话其实还除了数字以外的话还有一个什么呢?还有一个计量单位啊, 他一个计量单位就是我们的一个。呃,哪一个计量单位呢?有有一个年啊,有个年是一个做了这个自底反爬的啊,就这个年啊,我们来看一下 啊,就这个年还有这个万公里啊,这几个字是做了自己加密的。呃,手动构建怎么去弄呢? 啊?这么变态吗?还有更变态的,还有字体偏移啊,还有字体偏移,对吧?那那那,那就不讲那么多了,对吧?这个不属于咱们公开课的一个范畴,哈哈,我们今天公开课的话,就给大家解决一下这个案例就行了。 ok 啊,那我们来看一下啊。 ok, 首先的话,这个是我们呃加密的一个字体啊, in trapped word 啊,这是我们的一个,呃,对吧? uniqord 啊,就是 call 的 一个编码 返回拎括的。那我们首先的话要获取什么呢?获取它的一个码点啊,获取它的码点,获取我们这个字体的码点。对啊,就是把我们这个拎括的啊,给他获取他的一个码点啊,获取这个码点,你怎么去弄呢?我们 for 循环 for i in 我 们的一个什么呢啊? in chapter word 啊,然后呢,我们来获取一下 oid, 哎, 给大家看一下啊,来运行,看到没有啊?这个的话就是它对应的一个码点, 五八六七六啊,五八六七六五八四二五,然后这个点是四十六五八五五八五九五,是不是啊?跟我们这边的话它是一样的,跟我们这里的话它其实可以看得到它对应的一个码点的啊,对应的一个规则的啊,这是可以看到对应的规则的,看到没有 啊?有些的话他是看不到这种,他有些的话他有些,哎,我就不讲那么多了,我就给大家讲这个案例,感觉拓展太多的话,你们不懂啊,哈哈,因为像公安课这种东西,大家的技术水平都不一样,讲的多的话你反而不懂,反而不太懂,我们就给大家讲这个案例吧,就不做衍生讲解了,不做衍生讲解。 好,我们来看一下啊,这个比如说五八六七六啊,五八六七六是哪一个?我们来看一下。 那五八六七六是六吧, 对不对?那这个话就是我们的一个字体六啊,这个话就是我们的字体六,是不是?那我们这个五八四二五呢? 啊?五八四五的话就是零,对,五八五九五啊,这个的话就是八,对不对?你看五八五九五对应的吧?那五八四五啊,那这个又是个零。五八三七啊,这个是万字啊,这个是万 啊,这个是万字,是不是?那这个的话就刚好对应了什么呢?对应了我们这边。嗯,六十点八零万,六十点八零万, 那把六十点八零啊,对,六十点八零万,就是六十,对不对?那就刚好对应的。所以像这个纯数字的话啊,或者说它只有这几个单位的一个变化,我们可以自己手动构建一下,咱们可以自己手动来构建一下,我们来构建一下它的一个印刷规则, 字体印刷规则,那我们来个 word 点它。嗯,我们把这里截个图啊, ok 啊,首先的话,我们这个五八四二五对应的就是什么呢?零 是吧?五八七零零对应的就是一五八四六七啊,对应的就是因为它只有十个。我说过啊,就数字比较少,纯数字的话你可以手动构建,可以手动构建,因为它只有这么几个数字啊,我等一下再教大家怎么去让它自动识别啊? 自动识别也挺简单的,也也可以直接用代码自动识别啊。五八三八五,这个话就是五,一定要对的,五八六七六,这个是六, 然后呢?五八三四七,这个是七啊,这是七,然后呢?这个什么五八五九五,这个话对应的是八,然后这个五八四六一对应的是九, 然后我们后面这里的话不是有一个万字吗?那五八他万字,如果说你要的话你可以写上五八三七八,那这个的话对应的就是万字啊,万对,你你可以看一下这个字体文件的话,你可以找一下那个万字啊,找一下那个万,看下那个万字。 我把这这里如果说纯看的话不一定找得到啊,因为东西比较多, 确实这些字会比较多啊。啊?年的话就这个啊,这个是年?对啊,这个是年的单位啊,五八六六幺五八六六幺,这个是年的。哎,那个万字大家有看到过的吗?有,有看到吗? 我就不带大家看了啊,我懒得看了啊,这个啊,这个万,哎,看到了, 那对的话五八三七八跟这里是不是一样的?五八三七八是不是一样的,对吧? ok 啊,没,没毛病啊。 好吧,我们就就是这样子的啊,然后我们去构建一色规则,就给它替换,我们设置一个 str, 对不对?我们现在是获取了这个码点,这个是我们的码点啊,码点从哪里呢?从这个里面去取值,从这个里面去取值啊,就是我们 str string 等于什么呢?呃,加等于 word data, 取哪一个呢?取这个码点 好,取这个码点。但是呢我们要做个异常补货啊,因为这个点的话是我们在这里面是没有,因为点的话,它本身就是一个正常的一个点,所以说我们是不需要去替换的,所以在这个地方的话要做个异常 啊,如果说能够正常替换的话,我们就用它啊,如果说不能替换的话啊,那我们的就是一个什么呢? str 啊?加等于 i, 然后我们 print 这个 str 啊? print str, 那 平行, 嗯,零的话没出来吗? 五八四二八。零的话不是五八四二八吗? 哎,点错了 啊,五八四二五啊,打错了,五八四二五,打五八四二五,那这样的话是不是就出来了, 对不对啊?这样的话是不是就固定出来了啊?所以我们现在需要这个数据的话,那我们是不是可以给它干嘛定一个函数啊? df change。 那勾建一下,我们直接 return 什么呢? return 这个 str 就 行了, 把这个返回出去,那这个话我们就当做参数传递啊,从外部进行传递。 ok, 好, 那我们现在的话啊,现在我们这个地方来运行一下。 好,我们现在的话需要什么呢?我们需要这个价格。那我们呃在哪写呢? 原价,原价的话是不是取它?取它的话取出来之后我是不是要对它进行一个解密?是不是通过这个什么呢?通过这个 change 的 一个函数方法进行解密 啊?通过这个 change 的 一个函数方法进行解密啊,那就可以得到我们的一个, 那运行一下。那,那原价十八点九八万啊,十八点九八。过户了两次啊,这是另外一个车了。那还有这个信息呢?他的这个信息的话啊,信息的话我们来拿一下啊?信息, 你看信息里面的话是不是有一个单,有个年,然后这里的话有个万公里啊?像这些东西的话,这个年的话我们是可以不要的,可以不要的。对,我们直接做一个分割,点上一个 split, 以它作为分割取零,然后点上一个 replace。 replace 什么呢? replace 它,我们把这个给它替换掉啊,给它替换成空的,那这个的话就是我们的一个购买年份,购买车的一个年份啊,购买车的年份,然后这个地方的话啊,有个里程啊,这个话我们就取个一 啊,取一的话后面这些我们就不要了,他的公里数的话,我就万公里的话我就不要了哒,这个话就是里程啊,这个话就是里程 哒,公里数嘛,啊?公里数对不对?然后他的一个什么呢?他的售价是哪一个?这个是售价啊,售价的话我们直接用它 好,所以就用它好,给大家看一下我们整体的一个数据啊,大概的话就是这样子的,大概的话就是这样子,把它的所有东西拿到 呐,其实单位你是可以不要的,我只多给大家加了一个呐,像这种原价售价购买的年份公里数,然后过户次数, 这数据就出来了。其实这个单位要不要无所谓的,这个单位不要也行,要也行,其实因为这个单位的话你可以不要啊,没必要留着,因为单位都是以万为单位的,都是以这个万为单位的, 嗯, 对吧?你,你可以,你可以把这个写在这里嘛,对吗?单位的话是万公里嘛, 那你写在这个上面就可以了,那写在这的话,他大家就知道这个是万公里,多少万公里了, 对不对?那如果说实在你想要的话啊,实在想要的话,你可以把它替换成万公里也可以啊,把它替换成万公里也可以啊,对,那你这个替换成一个年字也可以啊,对不对?那如果说你实在需要的话,你也可以这样写啊,那后面的话不就是多少多少万公里了, 对不对?因为它这玩意是固定的嘛,不像我们数字的话,它可能是不固定的,但是单位的话不都是固定的嘛,所以你给它直接替换也行啊, 是吧?啊,这个话就是我们的数据的一个获取啊,数据的一个解析提取啊, 来,我们导入一个 c s b 模块, import csv, 创建文件对象 f 等于 open。 嗯,它就写写下面吧。 啊,我们的二手车啊,全国那就二手车吧,点 csv。 嗯,这里有啊。啊, model, model 的 话就是一个 w 啊 w 写入啊,牛奶 c s v right, 用个变量名去接收,哎不不,这里接收到这儿这里已经是是的了。 c s v 点上啊,字典写入 f, 然后我们的字段名,打字段名加上字段名的话,就用这里面的键就行了。用这个字典里面的键,用这个字典中的键啊,我们给它替换一下, ok, 然后写入什么呢?表头 kind 啊,这个话就是我们的一个什么字典写入方法, 写入的方法,那下面这种话就写入数据啊,哎呦, 填充编辑, ok, 来运卷运行,那这样的话我们数据就出来了啊,那二手车的数据 看到没有?那这个话就是我们相应的一些数据信息, 那基本上的话就可以了呀,那基本上就可以了,然后如果说你要做翻译的话啊,就批量采集的话,只要改这里面的这个配置就可以了,比如说我们采集前十页啊, 构建我们的一个循环翻译 for page in, 我 们的 range 一 到十一 哒,只要改什么呢?改这个就可以了。 然后 print 正在采集第多少页的数据内容, 这样的话我们就前十页的数据的话就采集下来了。 你要采集多少页,那你就循环多少次啊?它网站的话一共是有多少页啊?看一下 啊,它这里显示的话是一百多页啊。那你就就过循环一百多次就行了。 那我们循环到十四嘛,十页的话就差不多就六百条数据的样子。 一页六十条。呃一呃,十页的话就是六百条数据嘛?六百条数据 啊,这个话就是我们的一个数据的一个保存啊。

爬山爬虫教程第一天,什么是爬虫?哈喽,大家好呀,我是钱大家还在手动复制网上数据,逐一下载素材,熬到半夜赶工吗?其实有个小工具能帮你摆脱这种重复又耗时的麻烦,它就是爬虫。 很多人听到爬虫,都觉得他高深莫测,不敢碰。今天用大白话给大家讲,什么是爬虫,能帮你做什么?划重点,爬虫只是个工具,没有好坏,只看你怎么用。先通俗讲,什么是爬虫, 它其实一点都不高深,它不是什么黑客工具,也不是什么难学的高科技,就相当于是一个自动化的信息搬运工。我们平时手动翻网页,复制文字,收集数据,费时又费力。 而爬虫能帮我们自动完成这些机械操作,按照我们设定的规则,抓取全网公开的讯息,然后整理成我们需要的格式, 比如表格、文档,省去大量重复劳动。再说说爬虫能帮我们做什么?不管是职场赋能、提升工作效率,还是个人日常使用,它都能派上大用场, 真正做到解放双手,省时省力,让我们把时间花在更有价值的事情上。 职场上,他的赋能和提效效果尤为明显。做电商的,不用手动一个个查竞品的价格、销量评价,爬虫能自动抓取全网竞品数据,快速整理出价格趋势、好评关键词, 帮你精准选品,合理定价,省去大量无效耗时。做运营的,不用熬夜扒全网爆款文案、标题、话题标签。爬虫能批量抓取,分类汇总,帮你快速拆解爆款逻辑,轻松搞定内容创作、 账号运营,提升工作产出。还有职场白领、领导要你做行业报告,需要收集大量行业数据、政策信息, 不用一个个网页复制、粘贴,爬虫就能自动抓取、汇总、整理,帮你快速搭建报告框架,让你把精力放在核心的分析和总结上,高效完成工作,获得认可。就连做自媒体的,找小题、找素材、找热点,爬虫都能帮上忙, 批量抓取相关内容,帮你摆脱小题焦虑。除此之外,对个人来说,爬虫也十分实用。喜欢的图片、视频、音乐不用手动保存,逐一下载,爬虫能按照你的需求, 批量抓取各类公开的图片、短视频、背景音乐,不管是用来做素材整理、日常收藏还是剪辑创作, 都能省去大量手动操作的麻烦,满足个人多样化的使用需求。最后再强调一遍,爬虫只是一个工具,它的作用取决于使用它的人, 他能帮我们节省时间,提高效率,赋能工作。但如果用它去抓取未公开的隐私、违规信息,那就是使用者的问题,和工具本身无关。 总结一下,爬虫就是帮我们解放双手,高效收集公开信息的工具。不管是电商运营还是普通职场人,学会用它,都能让工作更轻松,少女翻倍。

二六年最新爬虫逆向某城海外网站加密实战教学,里面的头部加密参数偷坑以及 j s v m p 加密结构分析都会有讲到,哈哈,开始吧,来我们来看一下,这是海外版的某城,那么像某城的话,它有很多,有酒店、飞机是吧?等等等等都,呃,都是有的,它有很多, 那么像在这里我们随便查一个啊,查一个上海的。如果你也对前端逆向攻防感兴趣,老何我专门给大家准备了爬虫逆向实战的一个直播课,拆解目前市场主流的一些前端加密技术,还配套路制了全套的逆向入门学习视频,大家记得在粉丝群里面来进行获取,然后在这里你看这个是某城的他的一个酒店页面, 然后在这里他会有很多的一个酒店,我们通过下滑呀,他也可以产生下一页的数据接口。那么像某城,目前像在市场的话,他主要的加密啊,其实不管是国内的版本还是海外版本,其实他们的加密其实是一样的,就说名字会有点不同,来,我们可以看一下,你看鼠标右击点击检查,我们打开开发者工具, 然后在开发者工具当中啊,我们选择网络来进行监听,你看我们进行下滑,那么当我们下滑的时候,他在这个时候就会产生他的下一页的数据接口,你看 对吧?一方有案,八方点赞是吧? ok, 这要调查了, ok, 那 么在这里我们可以看到,在这里我们可以看到,当我们进行下一页的滑动的时候,它会产生它的下一页的数据接口,它是一个动态的,那么像在这里我们可以点击打开它,打开,打开之后你可以看到这里面就包含了我们所需要的这种酒店信息啊,酒店信息都在这里, 然后我们可以打开看一下,那你看那酒店数据,主要是在这个 dat 里面,那酒店数据 那么像目前某层的话,它主要的加密在于哪里呢?首先啊,你们看它的请求载荷看起来很多东西,对吧?其实像它请求载荷是没有加密的啊,某层目前它主要的话是在请求标头里面,来我们看啊,在它的请求标头里面有一个特定的一个参数,其实就是一个 tokyo, 那 么在国内版的某层里面,它就是一个 tokyo, 那 就是一个 tokyo, 但其实际上是一样的,我给大家讲一下,就是国内的版本它其实是一致的,你们可以去看一下,你看我可以给你们看一下 头部加密,你看某城是吧?这个是某城的机票查询,你看像某城的它的机票的一个查询界面啊,它同样的它也是采用的是一个请求头的一个 token, 给大家看一下啊。 你好给你们看一下,这是机票啊,机票和酒店其实都是大差不差的啊。我们现在你看我可以点击切换一个日期,切换一个日期,那么像在下面它会来加载它的一些函数的一些数据,来我们找一个接口,然后看一下啊,它的话主要是在请求标头里面,在请求标头里面会有一个 token, 会有个 copy, 下面会有 copy, 其实你们仔细观察,你们会发现像我们国内版的某城的 copy 跟海外版的它这个 copy 其实是一样的, 是不是一样的?是不是一样的吧?是不是一样的,只是说它名字不一样,但名字不一样,所以这里你们注意一下就可以了。好吧,那么在这里我们来看一下啊,首先那么像这个 copy 的 话,它是怎么来构成的呢?对吧?我们现在就是要来找一下它的加密啊。 c 选的话,国内版的它是有一个 c 选的,对吧?就一个简单的 mp 五啊,我记得, 对吧?国内版的我记得有个签名,对不对?但海外版本的话是没有签名的,你看,那其实它的重点的加密参数的话,其实是来自于这个, ok, 它下面的话,你可以看到还有一些其他参数,但其实这些参数我们其实不管它也没事,明白吗? ok, 那 么我们来看一下这个参数它是如何构成的嘞?你看它其实它的一个构成的一个结构, 是吧?我们来看一下啊,像它的这个构成一个结构啊,其实实际上啊,你看它里面的话,我们是去对它做一个加密定位。那我想问一下朋友们,朋友们,你们学过 jc 逆向吗?在 jc 逆向的体系里面,我们一般做加密定位,遇到加密的时候我们该怎么办,对吧? 对吧?你看啊,呃,有位朋友非常棒,是吧?有朋友非常棒,是吧?所以就说搜索一下,是的关键字搜索,对不对?呃,还有跟赞,那么像我们我给大家讲一下,一般其实我们当我们遇到了这种加密参数的时候,其实说实话我也不知道是跟堆赞还是什么的,有时候跟堆赞也很麻烦,对不对?我给大家讲一下,一般如果我们遇到加密的时候,第一反应啊?先搜关键字, 明白吗?先搜索关键字,搜索关键字如果搜不到了,然后我们再呃跟对战,是吧?或者用后壳,就是用一个类似一项美举的方式,对吧?我们通过一个美举的方式去进行他的一个选择嘛? 你看我们搜索一下,你看直接打开搜索框来搜索这个关键字,那么当我们去进行关键字搜索的时候,我们在这里我们是不是可以直接搜到他有三个,对吧?分别有三个,那么这三个的话,首先第一个他直接就是嗨的字,对吧?然后括号的一个曲值, 是吧?它是不是有一个明确的 hide 值的一个对象?然后下面两个的话是没有的,下面两个是一个 o 括号,一个 r 括号,对不对?所以说我们可以看一下它,第一个看一下啊?是不是?来我们点过去看一下, 然后我们打个断点给他啊?来我们来看一下这个是不是啊?它的话在这里是进行了一个赋值,对吧?它的赋值是赋值的一个 m, 我们看一下 m 在 哪里啊? m, m 在 前面对不对? m 是 不是在上面?好,我们现在来试一下,在页面当中来滚动该页面进行下滑来下滑,下滑的时候我们发现他并没有进行断点,就没有断点,那么如果说他没有断点,那么就证明当前这个位置啊,其实不是他的下面位置, 对不对?他不是的,那么他不是的,我们可以看一下第二个来看第二个,第二个的话我们可以看到他是在这里,对吧?然后我们把第二个跟第三个我们都可以给他打断点也是没关系的,打多个断点,然后下滑, 当我们下滑的时候,我们看一下它当前是断在了我们的第一个断点,对吧?那么下面这个断点它就不是的,好朋友们请看,那么在这里我们可以看到,在这里我们当前它的负值的话是有一个 p, 一个 p 变量,对不对?那么这个 p 变量的话是等于我们的 window 点 sequence, 然后处理到 r 点 body, 是 吧?你看这个地方是不是我们的主体的加密的一个位置, 你看这个地方是不是我们主体的一个加密位置啊?什么时候用你这水平学呀,对吧?学呀,对吧?会达到的,相信自己,对吧? 啊?还有像哔哩哔哩同学们有什么问题可以提问啊? ok, 那 么像在这里我们来看,首先我们如果遇到这里,你看我找到这个位置之后,记住啊,这个位置还不是最终的加密位置。我们首先要在这个地方,我们来看一下首先被加密的内容是什么,对吧? r 点 body 是 什么东西?观察一下 r 点 body, 嗯,我们可以看到这个 r 点 body 的 话,应该是我们当前的请求在何,有没有发现是我们当前接口的 请求体参数,对不对?我们可以看到像这个 r 点 body 的 话,它现在当前对应的是不是我们当前这个接口的请求体参数, 你看是不?它是不它,那么也就说当前这个参数应该会随着我们进行分页或进行处理的时候,对吧?它可能就是,对吧?会进行加密处理, ok, 那 么像在这里当我们 ok 之后,呃,看不懂,加油是吧?呃呃,科洛夫司机同学,如果说你看不懂,没关系啊,我们有逆向入门的视频,你可以去学习一下入门的知识,对吧?其实携程的话难度会比较高,携程的话其实涉及到补环境,对吧?涉及到补环境,因为他至少你看他里面其实这个 windows 点 special, 大家请看,这个是他主要的加密方法,对不对? 这个主要的加密方法它里面就有涉及到了大量的混淆,对吧?来点进看一下,你看是不是涉及到混淆,那么像这种代码,其实说实话,其实如果你们在最开始我记得是在二二年左右的时候,二二年左右当时的某本书, 对吧?其实这个版本啊,可以叫做是携程的初这个叫做 gsvmp 的 初代版本,对吧?也就是字节旗下的 gsvmp 的 一个初代版本。呃,可能朋友们你们在二二年的时候还是没有接触到的啊,其实如果有接触过的朋友们应该可以看出来它跟那个是一模一样的,而且就是一个初代版本啊,可以来个小福袋是吧? ok 的, 稍等一下我给你们发一下。 ok, 我 们来看。那么在这里像这种的话,你看这种其实就是一个整体的 g s v m p 文件,那么像 g s v m p 文件,其实它又没有特定的标识的,就是说,呃,我怎么看得出来它是一个 g s v m p 文件呢?其实我们是看不出来的, 一般像这种我给大家讲一下啊,它为什么这个地方我们把它称之为叫做 g s v m p 呢?因为首先第一个它是一个字的字型的一个方法,然后其次它在中间是有一个字的字型的一个方法,然后其次它在中间是有一个字的字型的话不是很好翻得到, 是吧?其实它下面这有有一堆看没有在这个地方看没有,它有一堆在这个地方,是吧?因为它进行的混淆,所以没有那么明显,那么在这里我们可以看到它是有一堆的这种自检码,这个自检码就是用来进行它的一个代码的一个加密的一个处理的, 而且像这种代码是不能还原的啊,这种代码还原不了啊,你只能通过 a s t 来分析它里面的各种 number, 也就是它的标签,对它的标签进行层层分析,但不能进行反混淆。就是说在线还原什么的都是不行的,你看我们可以试一下,你看我们找一个还原网站来,我给你看一下啊,这是一个 a s t 的 在线还原网站,我们可以把它还原,你看,其实实际上是还原不了的, 其实还是大差不差,两个都没变化,对不对?其实没有什么变化的代码,你看其实还是没有任何的变化的, 是吧?没有任何变化的,所以像这种是还原不了的,那么像这种我们一般是如何处理的?这种我们大多数啊都会直接把当前的代码进行全勾,然后给它补环境,是这么一个逻辑,对吧?就会把当前的代码,你看 ctrl a 全选,然后 ctrl c 把它全部粘贴复制下来, 然后 ok 之后啊,这个地方因为我有缘嘛,所以我我我给大家讲一下吧,但是我我也给大家讲一下,你看,首先你看,那么在这里我们是把它的加密的内容,对吧?加密内容为当前接口的请求抵参数。其次加密方法是 win 的 点 c 选直接全空这个代码,然后补环境,那就 ok 了, 对不对?那么在这里我们看一下是怎么做的哇?来给你们看一下原码。嗯嗯,携程这个其实我讲过很多的版本啊,嗯,这个携程的头部参数, 来这个讲这个来给你们看一下哦, ok, 大家请看哦。首先这个代码的话,就是上面是补黄建代码,我们先暂时不看,你看,首先我做了两件事情,有哪两件事情呢?第一个事情 把当前的代码是全扣,看没有?我把当前的代码全扣,下面这个代码是自己写的啊,你看主要是这个代码,这个代码的话就是当前网页端当中这个代码,你看把全部复制粘贴下来, 然后全部复制粘贴下来之后,这里我是通过 python 进行联动啊,你看我是通过 python 来进行调用的,看,没有,我是基于当前的 python 进行调用的,然后我在这个地方,我在 python 这个接口里面,我将会把当前的请求体,把当前的请求体把它传到我们的 js 文件里面去, 然后传过去之后在接收文件里面,我们在这个地方会来接收当前的请求体参数,然后你看使用 word 点 sql 来加密的我们的请求体参数,对吧?来加密我们的 data, 然后它里面的环境,说实话环境的话,这里给大家讲一下它里面其实上我们是有有一点点的圆形面的一些检测,对吧?你们可以去处理一下,你看我是怎么去处理的嘞?这就它的环境,首先我在这个地方啊,我是做了一个,第一个做了一个 close friend 的 一个代理, 打环境的一个代理,然后我们去把这些环境我们基本都给它补上了一下,对吧?它的补环境其实很简单,它里面就一个比较简单的几个点啊,它里面就几个比较简单的,就一个 word 和一个 word, 然后在 word 和 word 里面就有几个方法而已 啊。我们这个地方我们要用 python 调啊,我们要用 python 调,因为当前的这个 script 代码的话,我们是调不通的啊,我们要用 python 去调,因为我们当前是已经把它封装好了,已经把它封装好了。 ok, 这个地方大家了解一下吧。然后其次各位可以看到这上面会输出一行,就是通过我们当前的代理来进行输出的,然后关于携程这个章节,对吧?这个某程的头部参数加密,如果你们感兴趣的话,我有完整的讲解视频, 嗯,时常差不多有一个小时左右啊,差不多有一个小时左右,如果朋友们你们有需要的话,你可以去找我的小助理,让他发给你们,没问题吧?我,我给你们看一下 啊,这个是我之前在上那个技术直播课的时候,当时上技术直播课讲的一个完整的一个视频,你看。呃,我记得是技术直播课里面的啊, 你看某城对吧?海外携程的一个构成,看到没有?当时是有完整的讲解的啊,如果说你们有需要的话,我叫我去看一下,你可以去看一下,我们里面有完整的,带领大家去做里面的参数的分析以及如何去补环境都有完整的讲到这个地方,大家感兴趣,朋友们如果有需要的话可以点个关注,然后自己去获取,好不好?

爬虫界的核弹级开源项目来了,它已经在 github 上拿下七点九万四大。它无需 api 密钥,也不需要任何站点地图,只要一个目标网址就能自动识别主体开爬。对比传统爬虫工具, firecrow 能输出高质量的 map 样数据,可以直接对接 l l m 应用和 r a g 系统, 也非常擅长动态内容的爬取,不管你是加密数据流还是瀑布流图片都能扒得精光。 firecrow 把爬取、解析和视画都融为了一体,它提供了本地部署以及在线使用方式。如果你需要快速获取网页核心内容,尤其是要适配 ai 应用的,它值得研究研究。

pasa 从零开始学,今天要讲的是抓取招聘网站数据,今天我们来看如何使用三步抓取网页数据, 轻松获取拉勾网中所有岗位名称、公司名称以及薪资等招聘信息。在正式操作之前,先来了解一下招聘信息是怎么显示到我们眼前的。当我们在谷歌浏览器中打开一个网页,想要查看其中的信息时, 在地址栏输入对应的网址,回车就会跳转到相应的网站。在这个过程中,浏览器会将查看招聘信息的 request 的 请求发送给服务器,告诉服务器我们想要访问的网站内容, 服务器接收到请求后,就会响应这个请求,把对应的网页信息显示在页面上。这就是人类查看网页内容时,浏览器和服务器之间进行的操作过程。 整个过程非常迅速,快到我们几乎察觉不到。了解这个过程就是我们编辑爬虫程序的基础。 网络爬虫的英文是 web crawler, 也称为网页蜘蛛,是一种按照一定规则从网页上获取信息的程序或脚本。 通俗来说,就是通过模拟人打开网页浏览,在浏览过程中发现有意义的信息,然后复制、粘贴保存下来的行为。 现在我们进入拉勾网这个网站,上面有很多招聘信息,例如资深 server 研发工程师、 python 开发等等。当我们想要了解某个招聘信息时,点开会发现每一个招聘信息都有岗位名称、 公司名称和工作要求构成。如果我们想要将网站中所有的招聘信息保存下来,对比哪个岗位更赚钱,哪个公司待遇更好,可以通过复制、粘贴、保存到文档的方式来获取这些信息,这就是人为操作时的一系列行为。 如果是爬虫,他会怎么做呢?在任意一个浏览器中打开一个网页,看到需要的数据时,将鼠标移到上面,然后右键点击检查,就可以看到网页上的内容是通过标签代码显示出来的。 爬虫可能分不清页面上的哪个是岗位信息,哪个是公司名称,但能够看懂代码中的标签, 可以看到页面上的内容都被不同的 html 网页标签包裹着。将光标移到薪资信息上,就可以看到它被一个名为 celery tx y c。 的 标签包裹起来。爬虫的工作就是将标签里面包裹的文字抓取下来。 当爬虫接收到这样的指令后,他就会去查找所有名为 celery tx y c 的 d i v 标签,然后把里面的文字信息抓取下来。 这就是爬虫寻找网页信息的全部过程。要注意的一点是,有些网站会阻止爬虫爬取数据,服务器会辨别哪些是人为请求,哪些是爬虫发起的请求。爬虫也可以使用一些方法,例如更改配置,伪装成浏览器发起人为请求。 网络爬虫还可以同时多次发起请求爬取数据,但这样很容易造成一些小型服务器的崩溃,而且流量消耗过多也会让这些网站的主人承受不起。所以针对小型服务器,我们可以调整请求速度变慢,让网站能够接受这些请求,不至于崩溃。 但是有些网站还是不希望被爬虫骚扰,就会发布一个 robots 文件,文件里规定了在这个网站需要遵守的规则, 但这份文件只防君子不防小人。作为一个有礼貌的爬虫,在爬取数据之前,记得先查看 robots 文件中的约定,不要给他人造成烦恼。 接下来我们通过代码来爬取拉钩网上的招聘信息。在获取信息前,我们首先需要导入四个库,第一个库是 csv 库, 主要作用是将爬取的信息导出到 csv 文件中。 csv 文件相较于 channel 和 jason 更加简洁,并且可以随时查看抓取的结果。使用 time 模块,用来控制爬虫发起请求的时间间隔,避免因请求过快而被反爬虫机制检测到。 使用 request 模块,这是爬虫开发的核心工具,主要负责发送请求并接收响应。使用 l x m l 库中的一 tree 方法 主要是用来解析 html 中的网页标签。导入需要使用的库之后,需要从键盘输入抓取的关键词和对应的城市以及页码,并且定义请求头。请求头的作用就是伪装成浏览器发起请求,避免被反爬虫机制检测到。 定义一个 info list 列表,用来装载爬取的信息。打开拉勾网,我们可以看到网站中有非常多的招聘信息,而这些信息做了分页处理。每一页招聘信息都需要我们重新发起一次请求,所以使用 f 循环对每一页都发起一次请求。 在 u i l 中写入请求的网址以及想要抓取的关键词、城市和页码。使用 request 发起 get 请求并获得响应数据。用 e tray 方法解析 html 文件中的标签, 并且将 diy 标签里面的信息抓取出来,存储到 datast 中, datast 中的数据使用 print 方法打印出来,这里 time sleep 三表示每三秒发起一次请求, 这是为了防止同时发起多次请求而触发反爬虫机制。返回获取到的数据列表,并定义一个方法用来创建招聘 cv 文件,将我们爬取的信息都存储到文件中。现在我们来运行这段代码, 输入搜索的关键词,查找 python 相关的工作,以及心仪的城市和夜马, 等待抓取成功信息加载结束之后,我们打开招聘点 csv 文件, 可以看到 python 相关的工作岗位信息已经存储在了里面。点击这个数据,也可以以表格的形式查看这些信息。相信通过今天的学习,大家对爬取网页信息的流程有了更深入的了解,大家也可以运用今天学习的流程去抓取其他网站的信息。

开元零基础爬取数据项目来了!在 getop 上已经狂揽了四十三点六 k 星,它可以零逆向爬取各大自媒体平台数据,不仅支持登录态,还支持插件词云,看似做的简单,但功能却五脏俱全。采用 python 作为核心开发语言,原生支持并发。 以前需要去各个平台收集数据,动则就是几个小时,现在让 ai 帮你几分钟,几行代码就能搞定。而爬取的数据最终会以 excel、 my、 sql 和 json 等方式保存,没有复杂的代码就非常适合新手练习。

拍伞爬虫教程第九天,爬取股票数据,哈喽大家好呀,我是钱新手必看的爬虫实操教程今天来了,今天教大家获取某网股票数据,这是我们的目标网站, 我们的核心需求是提取股票代码和股票简称两个关键字段,如果要获取其他字段,可按同样的方法提取。这里需要注意,本视频仅用于学习分享,不涉及任何商业用途和规学习, 接下来我们一起来动手实操一下吧。首先定位到目标数据包,打开目标网站,鼠标右击页面的空白处,选择检查选项,在弹出的工具中切换到网络选项卡,刷新网页,让工具抓取所有的网络数据包。 刷新后会出现大量的数据包,这里教大家一个快速定位的技巧。在工具搜索框中输入一个股票数据,比如股票代码三零幺六八二,即可快速定位到目标数据包,无需逐个翻涨。 找到目标数据包后,鼠标右击选择复制,选择 c u r l bash 的 格式复制,然后打开 c u r l 转 python 的 代码,网站粘贴内容,一键转换 即可得到可直接使用的 python 代码,无需手动编辑。接着打开拍唱,粘贴转换好的 python 代码。该数据包返回的是 json 格式数据, 理论上通过响应对象去调用点接收方法即可转换为字典,方便取值,但运行后会出现了报错。 报错原因也很简单,返回的不是标准的接收格式数据,查看响应数据会发现 外层多了一串多余的字母,而标准的接收格式得要用大括号或者中括号给它包裹起来,这就是报错的核心原因, 这里提一个避坑的小技巧,找到代码中的 url 链接,删除 url 中携带的 call back, 等于接宽瑞这一串字母串参数,重新逆行代码。 这样操作后,服务器返回的就是标准的接收格式,数据调用点接收方法,即可顺利地转换为字典,避免报错。进入到下一步操作, 将接收数据转换成字典后,我们需要层层提取目标信息,观察数据结构,可以发现 核心数据嵌套在 data 这个键中。提取步骤如下,首先从外层字典中通过 result 键获取对应的值,再从中通过 data 这个键获取包含股票信息的列表, 这个列表中的每一项都是一个字典,代表一只股票的具体数据。接下来我们使用循环便利这个列表, 在每一次循环中,利用 name 这个键提取股票简称,利用扣的这个键提取股票代码。最后通过 print 语句输出,即可拿到我们需要的结果。这里需要提醒一下, 若需要提取其他字段,如同比增长、净利润等,无需重新操作,找到对应字段的键名, 按上述方法提取即可。那今天的实操就到这里了,下一期将讲述如何把抓取到的股票数据保存到 excel 表格中,方便后续查看和整理,我们下期见。

挑战爬一百个网站,今天是淘宝热卖数据采集,今天我们来看的是淘宝热卖的商品数据采集,同样也是通过右键去选择检查,打开开发者工具,打开之后呢进入到网络面板当中, 咱们这里去先清空一下,去翻一下下一页的数据,下一页好加载出来了,下一页的数据包,我们来搜索一下,比如说这个地方呢,是一个国潮活跃, 来搜索博潮博业啊,搜索发现在这个书包里面,那么这个数据包来看一下是不是包含的全部的商品数据,这里是他的一个名称,下面会有些其他的数据,这里是一些价格之类的商,这个商家之类的一些信息, 那来看一下。确定了数据包之后,我们来看这里有个散值,那么这个散值如果你也对拍粉爬虫感兴趣,包将毕生所学都拆分成了这些,从零到进阶全流程,按照八十老奶都能学会的方式讲解,它是一个所需要去逆向的一个参数,它是加密的, 我们就需要在本地去生成这样的一个密文值,然后再来去携带上这个密文值,去对他做请求之后才能去得到正确的数据。那我们来看一下这个数据包,他的一个启动器,这里有很多赞, 但他都是在 index 点 gs 里面的,随便点进来一个,进入到这个文件当中, 在这里去搜索这个参数的名称,他这里竟然没有混淆,我们就直接再看一下 s i n s i g n, 在 这里能够搜到二百零八个,那太多了,那再给他加个权重,比如加个炮等号之类的冒号,一共就有九十个了, 来从第一个开始找,第一个在这里散,他为 l, 那 么 l 在 这里去生成的,我们这里可以给它下个段点,下上再看第二个为 u, u 在 这里生成的,也给它下个段点。 第四个名称不对,第五个名称不对,第六个名称不对。第七个这里他是 n 六四三幺零,这个东西看起来其实不太像这里生成的,但咱们还是给他删断点好,再来去往下面跟,这里也是名称不对,跳过那就没了。到最后这个了, 第一个了,那就再来去让他翻一页看一下,翻下一页好,断在了这个位置。首先有个 r 点 talking, 这个链牌在一定时间里面是固定的,是不会变化的。 u 是 一个什么?六 data 点 com 时间戳 s s 是 在这里去生成的一个值,应该是三元预算之后的一个值, 这个是判断它是真还是假,那么应该是为假,它这里都已经得到了,是一个一二五了,那就是为 false, 就 会得到它,这就是这个 app key 值应该是也为 s, 那 就说它也是固定的,这里都为假,那就是一直都为它,给它固定好就可以了。再是这个 n 点 data, 那么这个 n 点 day 是 这样的一串值,这个值还有什么 power 之类的,那我们来看一下它这个地方有点像什么?刚在这里所看到的这个有个 data 值在这里, 那看起来就是它呗, a, b, i, d, power 等等,这长串,那就是它,那整个是将它们这几个拼起来, 得到了一个铭文值之后再去交给 c 是 吧?这个 c 函数能够得到什么?能够去得到一个密文值,能够去得到这样的密文值,它这里是没变化的,那说明它底层是没有去做 那种变化的东西的。那看下这个 c 函数,既然这都已经知道它的参数是什么了,就看它函数里面是什么了。 函数里面在这个地方是一个 c, c 相对是这样的一个大函数,到这一块这个是 c, 那 他是维特的这样的一个逻辑,这个逻辑是 d, d, d, d, s, w 这样的一个 b 什么的, 那他应该都是在这里面的 d 函数,这样又套了其他的一些函数,那你把这个 c 函数给他扒下来之后,去给他按照对应的逻辑给他传进去就好了, 传进去拼接之后呢值就可以了。我们来看一下这里是在这个地方,是吧?把这个东西传给那个 c 就 可以了,而且你会发现它在这里所生成的密文值, 我们可以看一下它的一个长度是多少位,长度是三十二位,三十二位又是零到九, a 到 f 的 组成,我们可以去尝试用 c 去加密一个字母串的一二三四五六,看它是不是一一零 a, d, c, f, 八八三 e, 这个是一个标准的 md 五加密, 我们可以看一下这里啊,一二三四五六,他就能够去得到一个一零 a、 d, c, f、 八八三 e, 这个是一个非常典型的 md 五标准的一个加密。 其实他这个地方你甚至都不需要去扒代码,你如果说想通过 python, 就 直接就可以通过 python 里面的 md 五加密去给它加密,也可以你去通过扣代码的形式去扣这个 c 函数也是没有问题的,他整个实现下来就是这里,比如说我这里是通过扣代码的形式给它扣出来的,这里是 那个 g s 文件,就是一个 c 函数,加函数再拍出去给它通过 x, e, e, c, g s 这样的库给它预变异一下,去调里面的函数,去给它构造一下对应的一个 参数,传进去加密就可以了,最后跑出来的结果能够去得到。等一下这里我们可以看一下它的一个点, test 的 右键运行好它这里就能够去得到对应的一个正确数据了。 所以这个网站它用的加密就是 md 五,它的一个代码也没有去做粉条,也没有去使用什么 webpack 这样的一个加载器,还是比较简单的。如果你也对拍粉爬虫感兴趣,土猫将毕生所学都拆分成了这些,从零到进阶全流程,按照八十老奶都能学会的方式讲解。