微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从 html 代码中提取 Web 应用程序内容? 此图显示 html 请求确实给出了一个空的 html 结构

如何解决如何从 html 代码中提取 Web 应用程序内容? 此图显示 html 请求确实给出了一个空的 html 结构

所以我目前正在尝试从 csgo 赌博网站收集数据来分析它们。所以我写了一个很短的程序,从这个网站提取 html 代码,但它不会提取网络应用程序的内容。 我现在的问题是我需要这个网络应用程序中的信息。我的意思是我可以在 Chrome 中查看它,所以我想会有解决方案。 也许这些图片有助于理解我在找什么:

HTML code; marked the line I want

import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Element;

public class Main {

    public static void main(String[] args) {
        
        try {
            
            String html = Jsoup.connect("https://www.wtfskins.com/crash").get().html();
            System.out.println(html);
            
        } catch (IOException e) {
            e.printstacktrace();
        }
    }
}

这就是我得到的。我需要

内容
<body> <app-root> 
  loading... // That's the problem
 </app-root> 
 <script src="https://code.jquery.com/jquery-3.1.1.min.js" integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8=" crossorigin="anonymous"></script> 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script> 
 <script src="/assets/js/jquery-ui.min.js"></script> 
 <script src="/assets/js/bootstrap.js"></script> 
 <script src="/assets/js/sha3.js"></script> 
 <script src="/assets/js/sha256.js"></script> 
 <script type="text/javascript" src="inline.318b50c57b4eba3d437b.bundle.js"></script> 
 <script type="text/javascript" src="polyfills.2b75d68d2d6cb678fc8d.bundle.js"></script> 
 <script type="text/javascript" src="main.7932c68952979c366236.bundle.js"></script>  
</body>

解决方法

页面中的数据是在初始 DOM 之后加载的。 当您使用 JSoup 获取数据时,您会收到初始 html 请求。

此图显示 html 请求确实给出了一个空的 html 结构

enter image description here 如果您检查浏览器中 Network 中的 dev tools 选项卡,您会看到在初始加载后会有额外的 XHR 请求,获取数据。 标签的 ngcontent 属性确保页面是使用 Angular 加载的,https://www.wtfskins.com/api/v1/p2ptrading/usertrades/ 是一个 Javascript 框架。
这样做是为了提高页面加载效率并防止更多的抓取。

检查后

网络选项卡显示页面加载后具有 JSON 响应的多个请求。您需要查看这些,查看哪些请求标头是请求它们所必需的。 如图所示,其中一个有趣的是: enter image description here

How the Web works

您可以首先查看 REST API basics 以及有关异步 Javascript 请求的子类别和 {{3}}。如果您不熟悉 Web 开发,研究将需要一些时间。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。