在服务器端扒数据快是快,可惜现在很多网页都会用ajax加载数据
优采云 发布时间: 2021-03-29 22:16在服务器端扒数据快是快,可惜现在很多网页都会用ajax加载数据
在服务器端提取数据更快。不幸的是,许多网页现在都使用Ajax加载数据。您在页面上看到的内容不在您拉回的HTML中。我想问一下在服务器端是否有任何可以解释和执行的内容。
尽管我也可以分析ajax请求并分析操作以获取我想要的数据。但是以防万一,我遇到了杂乱无章的js或性格极差的混淆js,我的心情并没有那么大。
浏览器,实际上,浏览器已经呈现了各种各样的东西,我可以使用浏览器通过js对其进行提取吗?
想法1,要分析多个页面的数据,分别加载它们
想法二,js无法跨域操作和读取,使用主机文件重定向来欺骗js
一般步骤
1.将您要分析的域名重定向到主机文件(例如)到12 7. 0. 0. 1
2.目前正在访问/.html,实际上是在访问此计算机
3.将.html加载到浏览器中之后,转到主机文件并立即注释掉重定向
4.各种各样的DNS缓存清除,否则您将无法读取网站的真实内容。
5.这时,单击.html之一,然后将src指向要分析的页面,例如/.html,然后DNS会向真正的网站解释
6.绑定事件,它将在内容加载后自动执行,此页面中分析页面数据的主要逻辑是
7.分析页面后,将src指向要分析的下一页。加载后,将触发一个事件并循环,直到分析完所有页面为止。 。
值得关注的地方
我找到了两个著名的购物商店网站来尝试。效果不错。读取隐藏的数据很容易,但是我仍然发现一些需要注意的地方:
1.秋天
如果网站使用掉落效果,则页面需要向下滚动以加载内容。通过扩展,将加载需要与用户交互的任何内容(滚动,单击,键入或等待一段时间)。您需要模拟这些事件。由于时间原因,没有单独的测试。
2.一次只能处理一个域名
在通常情况下,假冒的/.html中的js仅能处理数据,不能处理跨域()甚至跨子域()和父域()。除非显式设置了父域或子域,并且您的js程序也被设置为相同的值,否则可以跨越这些域。
因此,在通常情况下,此方法只能*敏*感*词*使用。幸运的是,大多数网站都没有太多的子域。
3.不能太频繁地访问,请注意另一方将您列入黑名单。
与服务器端相比
js方法更适用于具有复杂js行为或数据的网站。其缺点是效率不如服务器快。加载图像,CSS,JS等会消耗时间,并且无法完全自动化。
写在最后
数据仅用于学习和研究,请勿在各种*敏*感*词*的情况下使用。 。