"面试官的问题是:“您提到在抓取过程中使用了JS向工程和加密技术,能否分享一个具体的案例,详细讲述您遇到的挑战以及您是如何解决这些问题的?”
我理解这个问题是要分享一个我在项目中遇到的具体案例,展示我如何使用反向工程和加密技术应对挑战。
首先,背景是我在iAsk Finance项目中需要抓取某些加密的股票数据。其次,挑战是我发现数据接口中的参数被加密,而没有合适的文档说明如何解密这些参数,这使得数据抓取变得困难。
为了解决这个问题,我采取了以下步骤:
第一,我使用Charles进行网络监控,分析请求头和参数,定位加密的“Hexin-V”参数。
第二,我通过调试和分析代码,找到了加密的位置和算法,发现其使用了特定的加密函数。
第三,我编写了Node.js脚本模拟这个加密过程,以生成正确的请求参数。
第四,最后,利用Scrapy框架成功实现了数据抓取,将结果存储在数据库中,满足了需求。
通过这个项目,我不仅成功解决了反向工程中的难题,还提升了我们的数据获取效率。"
发表回复