当前位置: 首页 > 科技观察

爬虫工程师必备的10件利器

时间:2023-03-17 16:51:08 科技观察

相信大家都明白一个道理,工欲善其事必先利其器。而作为经常要和各大网站拉锯战的爬虫工程师,他们需要善用身边的各种法宝,才能更快的突破对方的防线。今天,我就根据日常的爬取过程,给大家介绍十款工具。相信在你掌握了它们之后,你的工作效率一定能够提高一个数量级。爬虫首先做什么?当然是目标站点分析1.ChromeChrome是爬虫的基础工具。一般我们用它来做初步的爬虫分析,页面逻辑跳转,简单的js调试,网络请求步骤等,我们早期的大部分工作都是在它上面完成的。打个不恰当的比方,如果没有Chrome,我们将从智能时代倒退到马车时代。同类工具:Firefox、Safari、Opera2.CharlesCharles对应Chrome,但用于App端的网络分析。与web端相比,App端的网络分析更为简单,重点分析每次网络请求的参数。当然,如果对方在服务端加密参数,就会涉及到逆向工程的知识,又是一大利器,这里暂且不说。同类工具:Fiddler、Wireshark、Anyproxy接下来分析站点的反爬虫。3.cUrl维基百科是这样介绍的。cURL是一种文件传输工具,它使用URL语法在命令行上工作。1997年首次发布,支持文件上传和下载,是一个综合性的传输工具,但按照传统,习惯上称cURL为下载工具。cURL还包括用于程序开发的libcurl。在做爬虫分析的时候,我们往往要模拟请求。如果这个时候再写一段代码,那就太小题大做了。只需通过Chrome复制一个cURL,然后在命令行中运行它即可查看结果。步骤如下:4.Postman当然,大部分网站是不允许??你复制cURL链接和更改参数来获取数据的。接下来,我们需要借助Postman这个“大杀器”进行更深入的分析。为什么是“大杀器”?因为它真的很强大。使用cURL,我们可以直接移植请求的内容,然后修改请求,选择我们想要的内容参数,非常优雅。5.OnlineJavaScriptBeautifier使用以上工具,基本可以解决绝大部分网站,算是一个合格的初级爬虫工程师。这个时候我们要想进阶,就需要面对更复杂的网站爬虫。这个阶段你不仅需要知道后端的知识,还需要了解一些前端的知识,因为很多网站的反爬虫措施都是放在前端的。需要提取对方站点的js信息,需要理解和逆向。原生的js代码一般都不好读。这时候就让它帮你格式化吧!6.EditThisCookie爬虫和反爬虫是一场没有硝烟的拉锯战。你永远不知道对方会为你埋什么坑,比如篡改Cookies。这时候就需要它来辅助你的分析了。通过Chrome安装EditThisCookie插件后,我们可以点击右上角的小图标,然后对Cookies中的信息进行增删改查,大大提高了Cookies信息的仿真度。接下来,我们开始设计爬虫的架构。7.Sketch在我们确定自己可以爬取之后,就不要急着去手写爬虫了。相反,您应该开始设计爬虫的结构。根据业务的需要,我们可以做一个简单的爬取分析,有助于我们后期开发效率。比如你可以考虑是搜索爬取还是遍历爬取?BFS还是DFS?有多少个并发请求?考虑好这些问题后,我们就可以通过Sketch画出一个简单的架构图了。同类工具:Illustrator、Photoshop让我们开始愉快的爬虫开发之旅吧!终于到了开发的时候了。经过上面的步骤,我们就到了这个地步。万事俱备,只欠东风。这个时候我们只需要做代码和数据的提取。8、XPathHelper在提取网页数据时,我们一般需要使用xpath语法来提取页面数据信息。一般我们只能通过写语法,向对方网页发送请求,然后打印出来,才能知道我们提取的数据是否可以获取。没错,一方面会发起很多不必要的请求,另一方面也会浪费我们的时间。这可以使用XPathHelper。通过Chrome安装插件后,我们只需要点击它,在对应的xpath中写入语法,就可以在右侧直观的看到我们的结果,效率up+10086。9、有时候我们从JSONView中提取的数据是Json格式的,因为使用方便,越来越多的网站倾向于使用Json格式进行数据传输。这时候我们安装好这个插件之后,就可以很方便的查看到Json数据了。10.JSONEditorOnlineJSONView直接在网页返回数据,结果是Json,但是很多时候我们请求的结果是前端渲染出来的HTML网页数据。我们发起请求后得到的json数据显示在终端(terminal)上显示不好怎么办?借助JSONEditorOnline,你可以很好的格式化数据,一秒格式化,贴心的实现折叠Json数据的功能。既然看到这里,相信你们一定是铁杆粉丝,送你们一个彩蛋工具。0.ScreenFloat可以做什么?顾名思义,它是一个屏幕浮动工具。不过最近才发现它很重要,尤其是我们需要分析参数的时候,经常需要在几个界面之间来回切换。这时,有一些参数,我们需要比较它们的差异。这时候可以先悬停在上面,不用在几个界面之间切换。很方便。再给大家一个隐藏玩法,比如上面的。如果你还有其他好用的工具,欢迎留言!