javascript - 使用 JavaScript 爬取网站 -> 可能以及爬取的网站上显示的 IP
问题描述
可以在 Angular-App 中抓取网站吗?我说的是从 Angular 调用网站,而不是爬取 Angular-App。如果是这样,那么我想知道在抓取的网站上将显示哪个 IP。由于 JavaScript 是客户端,我建议它是客户端的 IP,而不是服务器的 IP(可能在 nodejs 上)。但我所知道的,它主要是浏览器实现的东西,我们可以在 JS 中使用,所以甚至可以使用 JavaScript(或 Angular)的方法来爬取网站?
最好的问候嗡嗡声
解决方案
理论上,您可以创建一个 AJAX 请求来获取具有响应类型的数据text/html
。这会将远程文档作为字符串提供给您。不过,浏览器不会尝试在该文档中加载 JavaScript 和 CSS。这可能不是问题,但 CORS 是。出于安全原因,大多数浏览器会阻止您从其他地方加载数据(否则,犯罪分子很容易将 JavaScript 放入任何网页)。有关详细信息,请参见此处:https ://developer.mozilla.org/en-US/docs/Web/HTTP/CORS
如果您可以控制第二个域,则可以将那里的服务器配置为将Access-Control-Allow-Origin
标头发送到浏览器以允许从 Angular 应用程序进行访问。
注意:您可以使用 aniframe
来加载其他网站,但是当当前文档的域与 中的域iframe
不匹配时,您将无法iframe
从 JavaScript 访问内容。
解决此问题的一种方法是在您的服务器上安装代理。然后浏览器可以向您的服务器询问有问题的页面。在这种情况下,远程网站将获取您服务器的 IP。
推荐阅读
- javascript - 使 svg 适合任何屏幕尺寸;没有滚动条
- java - Java:中断异常:awaitTermination
- c# - Objectlistview TextMatchFilter 过滤而不是突出显示
- apache-spark - 可以在完整输出模式下在 Spark 结构化流中删除/控制中间状态吗?(火花 2.4.0)
- python - 使用 np.gradient 计算量子力学问题的梯度
- asp.net - 将自定义表链接到角色管理器
- powershell - 在条件中使用表达式/属性
- spring-boot - 如何使用 springdoc openapi 在 swagger ui 上有条件地忽略 PathVariable
- class - 如何使用 v-bind 将“动态”类添加到按钮
- python - 如何在mac上卸载python和所有包?