Jsoup 未下载整个页面

2024-02-19

网页是:http://www.hkex.com.hk/eng/market/sec_tradinfo/stockcode/eisdeqty_pf.htm http://www.hkex.com.hk/eng/market/sec_tradinfo/stockcode/eisdeqty_pf.htm

我想提取所有<tr class="tr_normal">使用 Jsoup 的元素。

我正在使用的代码是:

Document doc = Jsoup.connect(url).get();
Elements es = doc.getElementsByClass("tr_normal");
System.out.println(es.size());

但尺寸(1350) 小于实际的 (1452)。 我将此页复制到我的计算机上并删除了一些<tr>元素。然后我运行了相同的代码,它是正确的。看起来元素太多,jsoup 无法读取所有元素?

那么发生了什么事?谢谢!


问题出在内部 Jsoup Http 连接处理。 选择器引擎没有任何问题。 我没有深入研究,但处理 http 连接的专有方法总是存在问题。 我建议将其替换为 HttpClient -http://hc.apache.org/ http://hc.apache.org/。如果您无法添加 http 客户端作为依赖项,您可能需要检查处理 http 连接的 Jsoup 源代码。 问题是 Jsoup.Connection 的默认 maxBodySize。请参考更新后的答案。 *我仍然保留 HttpClient 代码作为示例。 程序的输出

  • 从文件加载= 1452
  • 从http客户端加载= 1452
  • 从 jsoup 连接加载= 1350
  • 使用 maxBodySize= 1452 从 jsoup 连接加载

    package test;
    
    import java.io.IOException;
    import java.io.InputStream;
    
    import org.apache.http.HttpResponse;
    import org.apache.http.client.ClientProtocolException;
    import org.apache.http.client.HttpClient;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.impl.client.HttpClientBuilder;
    import org.jsoup.Jsoup;
    import org.jsoup.nodes.Document;
    import org.jsoup.select.Elements;
    
    public class TestJsoup {
    
        /**
         * @param args
         * @throws IOException
         */
        public static void main(String[] args) throws IOException {
            Document doc = Jsoup.parse(loadContentFromClasspath(), "UTF8", "");
            Elements es = doc.getElementsByClass("tr_normal");
            System.out.println("load from file= " + es.size());
    
            doc = Jsoup.parse(loadContentByHttpClient(), "UTF8", "");
            es = doc.getElementsByClass("tr_normal");
            System.out.println("load from http client= " + es.size());
    
            String url = "http://www.hkex.com.hk/eng/market/sec_tradinfo"
                    + "/stockcode/eisdeqty_pf.htm";
            doc = Jsoup.connect(url).get();
            es = doc.getElementsByClass("tr_normal");
            System.out.println("load from jsoup connect= " + es.size());
    
            int maxBodySize = 2048000;//2MB (default is 1MB) 0 for unlimited size
            doc = Jsoup.connect(url).maxBodySize(maxBodySize).get();
            es = doc.getElementsByClass("tr_normal");
            System.out.println("load from jsoup connect using maxBodySize= " + es.size());
        }
    
        public static InputStream loadContentByHttpClient()
                throws ClientProtocolException, IOException {
            String url = "http://www.hkex.com.hk/eng/market/sec_tradinfo"
                    + "/stockcode/eisdeqty_pf.htm";
            HttpClient client = HttpClientBuilder.create().build();
            HttpGet request = new HttpGet(url);
            HttpResponse response = client.execute(request);
            return response.getEntity().getContent();
        }
    
        public static InputStream loadContentFromClasspath()
                throws ClientProtocolException, IOException {
            return TestJsoup.class.getClassLoader().getResourceAsStream(
                    "eisdeqty_pf.htm");
        }
    
    }
    
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jsoup 未下载整个页面 的相关文章

  • getCurrentSession 在网络中休眠

    我正在使用 hibernate 和 jsp servlet 编写一个基于 Web 的应用程序 我读过有关sessionFactory getCurrentSession and sessionFactory openSession方法 我知
  • 将类转换为 JSONObject

    我有好几堂这样的课 我想将类转换为 JSONObject 格式 import java io Serializable import com google gson annotations SerializedName public cla
  • 为什么 jar 执行的通配符在 docker CMD 中不起作用?

    我有一个Dockerfile与以下CMD启动我的 Spring Boot 应用程序 FROM java 8 jre CMD java jar app file jar 当我尝试从创建的图像启动容器时 我得到 Error Unable to
  • 未捕获的类型错误:无法读取未定义的属性“prop”

    我有 6 个输入复选框 如果选中的复选框超过 3 个 则最后一个复选框将被取消选中 为了更好地理解 请参阅我之前的question https stackoverflow com questions 35195235 if checkbox
  • Android 认为我没有关闭数据库!为什么?

    我有一个 SQLiteDatabase 数据成员 我在 onCreate 中初始化它 并在 onPause onStop 和 onDestroy 中调用 close 它在 onResume 中重新初始化 它似乎运行得很好 但当我查看调试器时
  • jQuery 选择器定位具有 id AND class 的元素不起作用

    我有以下事件处理函数 jQuery document on click button submitb function e alert jQuery 包含在 html 文档中 但是 如果我点击 div class submitb Go di
  • 如何自定义舍入形式

    我的问题可能看起来很简单 但仍然无法得到有效的东西 我需要自定义 Math round 舍入格式或其他格式以使其工作如下 如果数字是 1 6 他应该四舍五入到 1 如果大于或等于 1 7 他应该四舍五入到 2 0 对于所有其他带有 6 的小
  • Intro.js 2页然后返回首页

    我在用intro js http introjs com 为我的网站创建一个小介绍 我希望游览从第 1 页 主页 2 另一页 然后回到第 1 页 主页 我已经成功地从第 1 2 页开始 但不确定如何让它返回到第 1 页 我对 javascr
  • HttpWebRequest vs Webclient(特殊场景)

    我知道这个问题之前已经回答过thread https stackoverflow com questions 1694388 webclient vs httpwebrequest httpwebresponse 但我似乎找不到详细信息 在
  • Gmail 和 Google Chrome 12+ 中的“从剪贴板粘贴图像”功能如何工作?

    我注意到一个来自 Google 的博文 http gmailblog blogspot com 2011 06 pasting images into messages just got html其中提到 如果您使用的是最新版本的 Chro
  • 如何更改元素的 CSS 类并在单击时删除所有其他类

    我如何处理 AngularJS 2 中的一种情况 即单击一个元素需要更改其自己的样式 并且如果其他元素具有该样式 则需要将其删除 最好在一个函数中 如同Angular js 如何在单击时更改元素 css 类并删除所有其他元素 https s
  • titledBorder 标题中的图标

    您好 是否可以在 titledBorder 的标题中放置一个图标 例如以下代码 import java awt GridLayout import javax swing JFrame import javax swing JLabel i
  • Spring Data Rest 多对多 POST

    首先 让我解释一下我的用例 这非常简单 有一个用户实体和一个服务实体 我使用 UserService 作为连接实体 连接表 在用户和服务之间建立多对多关联最初 会有一些用户集和一些服务集 用户可以在任何时间点订阅任何服务 在这种情况下 将向
  • 在React组件中使用的字符串变量中插入html

    我正在为我的投资组合网站构建一个反应应用程序 目前我已经用 JSX 编写了应用程序 因此我可以添加以下内容 class Project extends React Component render return div h1 this pr
  • Java 中清除嵌套 Map 的好方法

    public class MyCache AbstractMap
  • 响应式2列2行布局

    我一直在试图弄清楚如何创建这个布局 我有一个 2 列布局 左列有 1 行 右侧有 2 行 我试图让它流畅地调整 我遇到的问题是 我希望右侧顶部图像的顶部与左侧图像的顶部对齐 而底部图像的底部与左侧图像的底部保持对齐 我应该使用桌子吗 这是我
  • 什么是 Java2D 处理程序线程?

    我创建了一个使用 Hibernate 的示例 java 应用程序 当我进行线程转储时 我观察到一个名为 Java2D Disposer 的奇怪线程 有人能告诉我该线程的功能吗 AWT 系统中的某些实体需要最终确定以释放资源 最突出的例子是j
  • ASP.NET 中 HTTP 缓存相关标头的有效含义

    我正在 ASP NET 2 0 中开发一个 Web 应用程序 其中涉及通过资源处理程序 ashx 提供图像 我刚刚实现了处理缓存标头和条件 GET 请求 这样我就不必为每个请求提供所有图像 但我不确定我是否完全理解浏览器缓存发生了什么 图像
  • 优化 CSS 交付 - Google 的建议

    谷歌建议在 head 中使用非常重要的 CSS 内联 并在内部使用其他 CSS
  • 关闭扫描仪是否会影响性能

    我正在解决一个竞争问题 在问题中 我正在使用扫描仪获取用户输入 这是 2 个代码段 一个关闭扫描器 一个不关闭扫描器 关闭扫描仪 import java util Scanner public class JImSelection publ

随机推荐

  • OSGi/Felix声明式服务:如何过滤要绑定的服务?

    我正在使用 Apache Felix 及其声明性服务 SCR 来连接捆绑包之间的服务依赖关系 例如 如果我需要访问 java util Dictionary 我可以说以下内容让 SCR 提供一个 scr reference name pro
  • 在pyspark(2.2.0)中将CSV文件写入AWS时如何分配访问控制列表(ACL)?

    我知道我可以将我的 Spark 数据帧作为 CSV 文件输出到 AWS S3 df repartition 1 write csv s3 my bucket name df name 我的问题是有没有一种简单的方法可以将此文件的访问控制列表
  • 遍历/迭代任意深度的嵌套字典(字典表示目录树)

    在撰写本文时 Python 新手 出现这个问题是因为我希望用户能够从一个目录 以及任何子目录 中选择一组文件 不幸的是 Tkinter 在文件对话框中选择多个文件的默认功能在 Windows 7 上被破坏了 http bugs python
  • 取两个可为空值中的较大者

    假设我有两个可为空的整数 int a 10 int b 20 我想取最大的非空值 这样如果两个值都为空 则结果为空 我可以写一些冗长的东西 例如 int max if a null max b else if b null max a el
  • 控制器规范中的 RSpec 存根辅助方法

    发现类似的问题 但令人惊讶的是 我发现没有一个给出简单的答案 尝试在我的控制器规范中存根辅助方法 不太确定哪个对象需要加倍 控制器调用此方法 app helpers sessions helper rb def signed in curr
  • 在 Java 中将 XML 作为字符串读取

    有人可以帮我解决这个问题吗 我想知道如何将这个示例读取为字符串 我知道如何阅读第一个 但不知道如何阅读所有内容 tr tr
  • 如何声明具有多个具有非平凡关系的泛型类型的成员?

    这是我想在我的java代码中编写的内容 private a R extends Result gt MyType a
  • TlbImp.exe 无法注册 lib 文件:“.dll 不是有效的类型库”

    该 dll是FKAtend dll 附带生物识别设备的VB6 0 SDK 该 dll在VB6 0环境下工作正常 但是 当尝试在另一台具有 VS NET 环境的 PC 上注册它时 出现上述错误 我们使用 dependency walker 检
  • 通过在 MATLAB 中计算平均值进行下采样

    假设我有一个包含 44100 个样本的文件 采样频率为 fs 44100 Hz 所以我的文件是 1 秒长 我想将其下采样到 8 Hz 的采样频率 但我不想通过获取每个 44100 8 5512 5 样本并将其保存在新数组中来实现此目的 但通
  • 构建无法从 VisualStudio 运行,但可以从 msbuild 运行

    从 Visual Studio 中的全新控制台应用程序模板中 我编辑了 csproj构建另一个这样的项目
  • 单选按钮多项选择

    我有许多具有不同名称属性的单选按钮 我面临一个问题 每次我单击每个单选按钮时 我都可以选择全部 我正在使用单选按钮重定向到其他页面 我不想只选择一项 我正在使用 twitter bootstrap 选项卡在一页上显示多个内容 只需切换选项卡
  • 未捕获对象错误:无法注入 ngAnimate

    当我尝试像这样注入 ngAnimate 时 我无法实例化我的应用程序 var app angular module musicsa ngCookies ngResource ngSanitize ui router firebase ngA
  • 基本日期之间查询 $gte、$lte 等

    我在 mongo 查询的正确时间格式方面遇到问题 我的问题是 Is time Timemongo ISODate 对象的正确 go 类型 为什么我的时间解析似乎解析完全不同的日期 这是我正在做的事情的完整示例 package main im
  • 如何使用 ngrok 托管 HTML 文件?

    是否可以使用 NGROK 托管 HTML 文件 而不是 Web 应用程序 我真的对 NGROK 一无所知 我只是用它来托管 Twilio 应用程序的服务器 并且想用它来托管我的另一个项目的 HTML 文件 另外 有人知道如何在 Mac 上创
  • CSS 转换在 IE 中不起作用

    我无法在 IE 或 Firefox 中实现此转换 但在 Safari 和 Chrome 中看起来不错 不透明度显示但是即时的 对我来说 下面的 CSS 看起来是正确的 但我看不出它有任何理由可以在 IE 或 Firefox 中工作 我已经使
  • 我在编译时遇到找不到符号错误

    import java io File import java io BufferedReader import java io InputStreamReader import java io import java io InputSt
  • 如何通过 URL 访问 Jenkins 在 lastSuccessfulBuild 中创建的工件?

    我正在使用 Jenkins 管道构建 Android 应用程序 构建成功完成后 它会创建一个 apk 文件 我希望 QA 团队的成员能够下载此文件并在将其上传到 Google 商店之前测试该应用程序 因此我希望这些用户 有权访问 Jenki
  • 将项目添加到不可变的 Seq

    假设我有一个字符串序列作为输入 我想获得一个新的不可变的Seq它由输入的元素和一个项目组成 c 以下是我发现有效的两种方法 assert Seq a b c Seq a b Seq c 这个的问题是 似乎实例化了一个临时序列 Seq c 只
  • tkinter:无法进入条目小部件

    我不明白为什么下面的输入框rackGUI py在我的代码中是静态的 不允许输入任何内容 我相信所有的Entry对象被正确实例化 我将文本变量指定为StringVar 我的直觉告诉我问题在于命令参数create button实例化 但我不太确
  • Jsoup 未下载整个页面

    网页是 http www hkex com hk eng market sec tradinfo stockcode eisdeqty pf htm http www hkex com hk eng market sec tradinfo