`

chromium.Browser 禁止加载图片,提升加载速度

阅读更多
package com.teamdev.jxbrowser.chromium.demoTest.jd427;

import java.awt.BorderLayout;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.TimeUnit;
import java.util.logging.Level;

import javax.swing.JFrame;
import javax.swing.WindowConstants;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import com.hyjx.orclJdbcUtil.JDBCUtils;
import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.BrowserPreferences;
import com.teamdev.jxbrowser.chromium.LoggerProvider;
import com.teamdev.jxbrowser.chromium.events.FinishLoadingEvent;
import com.teamdev.jxbrowser.chromium.events.LoadAdapter;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;




public class sanya_good_num{
public static void main(String[] args) throws Exception {

LoggerProvider.getBrowserLogger().setLevel(Level.SEVERE);
LoggerProvider.getIPCLogger().setLevel(Level.SEVERE);
LoggerProvider.getChromiumProcessLogger().setLevel(Level.SEVERE);
//初始化Browser
        final Browser browser = new Browser();
        BrowserView browserView = new BrowserView(browser);
         
        //禁止加载图片
        BrowserPreferences preferences = browser.getPreferences();
        preferences.setImagesEnabled(false);
        preferences.setLoadsImagesAutomatically(true);

        browser.setPreferences(preferences);


        //Jframe初始化设置
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.add(browserView, BorderLayout.CENTER);
        frame.setSize(800, 600);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        frame.setTitle("京东商品");
       
java.sql.Connection conOrcale = null;
try {
conOrcale = JDBCUtils.getConnection();
} catch (SQLException e1) {
e1.printStackTrace();
}
String sql = null;
PreparedStatement ps = null;
String sql1 = null;
Statement st2 = null;
ResultSet rs2 = null;
Document doc = null;
try {

sql1 = " select goodurl from z_sanya_jd_goodinfo where bad_num is null";
st2 = (java.sql.Statement) conOrcale.createStatement();
rs2 = st2.executeQuery(sql1);

} catch (Exception e) {
e.printStackTrace();
}
int i = 1;
for (; rs2.next();) {
System.out.println(i);
i++;
final String goodurl = rs2.getString("goodurl");
search(goodurl, frame, browser);
}

}
static void search(final String goodurl, JFrame frame, final Browser browser)throws Exception{
java.sql.Connection conOrcale  = null;
try {
conOrcale =    JDBCUtils.getConnection();
} catch (SQLException e1) {
e1.printStackTrace();
}
String sql = null;
PreparedStatement ps = null;
try {
sql = " update z_sanya_jd_goodinfo set  bad_num = ?    where goodurl = ?   ";
ps = conOrcale.prepareStatement(sql);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("goodurl--------------》"+goodurl);
invokeAndWaitReady(browser, new Runnable() {
public void run() {
browser.loadURL(goodurl+"#comment");
}
});
       
//        try {
// Thread.sleep(3000*1);
// } catch (InterruptedException e1) {
// e1.printStackTrace();
// }
        String html = browser.getHTML();
        Document document = Jsoup.parse(html);
       
        String bad_num = "";
try {
bad_num = document.select("ul.filter-list li:eq(5) em").text();
} catch (Exception e) {
// TODO Auto-generated catch block
bad_num = "";
}
        System.out.println("bad_num:"+bad_num+"\n下一个");
        try {
ps.setString(1,bad_num);
ps.setString(2,goodurl);
ps.executeUpdate();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
    }


public static void invokeAndWaitReady(Browser browser, Runnable runnable) {
    final CountDownLatch latch = new CountDownLatch(1);
    LoadAdapter listener = new LoadAdapter() {
        @Override
        public void onFinishLoadingFrame(FinishLoadingEvent event) {
            if (event.isMainFrame()) {
                latch.countDown();
            }
        }
    };
    browser.addLoadListener(listener);
    try {
        runnable.run();
        try {
            if (!latch.await(60, TimeUnit.SECONDS)) {
                //throw new RuntimeException(new TimeoutException());
            }
        } catch (InterruptedException ignore) {
        ignore.printStackTrace();
            Thread.currentThread().interrupt();
        }
    } finally {
        browser.removeLoadListener(listener);
    }
}
}


//点击

browser.executeJavaScriptAndReturnValue("document.getElementsByClassName('cities-group')[3].getElementsByTagName('dd')[0].getElementsByTagName('ul')[0].getElementsByTagName('li')[10].getElementsByTagName('a')[0].click();");
分享到:
评论

相关推荐

    Jxbrowser.rar

    1. 性能优化:6.24.3版本对Chromium内核进行了更新,提升了加载速度和内存管理效率,使得用户在浏览网页时获得更流畅的体验。 2. 安全性提升:此版本修复了多个安全漏洞,增强了浏览器的安全防护能力,保护用户的...

    CefSharp Browser Chromium内核 WebBrowser 控件

    **CefSharp Browser:Chromium内核WebBrowser控件** CefSharp是一个开源项目,它为.NET开发者提供了基于Chromium的浏览器控件。这个控件允许开发者在他们的应用程序中嵌入一个功能强大的、与现代Web标准兼容的...

    浏览器内核chromium84(2020)版本

    1. **性能提升**:Chromium 84对JavaScript引擎V8进行了优化,提高了页面加载速度和响应性,这对于游戏内的动态内容加载至关重要,确保玩家能够快速访问和交互游戏内网页。 2. **隐私和安全**:此版本包含了多项...

    android Browser 流程分析图解

    1. Android Browser使用内存缓存和磁盘缓存来提高页面加载速度。 2. 内存缓存存储最近访问过的页面,当再次访问时,可以从内存中快速加载。 3. 磁盘缓存则保存更长时间未访问的页面,一般位于/data/data/app_package...

    Embedded Browser 3.1.0.7z

    Chromium是Google Chrome浏览器的基础,是一个开源的、高性能的Web渲染引擎,它支持现代Web标准,提供快速的页面加载速度和流畅的页面滚动体验。Unity的Embedded Browser 3.1.0正是采用了这一内核,确保了在Unity...

    centbrowser_4.1.6.137_x64

    1. **Chromium内核**:CentBrowser是基于Google的开源项目Chromium构建的,这意味着它使用了相同的Blink渲染引擎,确保了网页加载速度和兼容性与Chrome浏览器相当,支持最新的Web标准和技术。 2. **多标签管理**:...

    Embedded Browser 2.0.0.zip

    优化的性能不仅体现在页面加载速度上,还包括渲染质量、内存管理以及多线程处理等各个方面,这些改进对于保持用户体验的一致性和优质性至关重要。 这一版本的核心亮点在于采用了谷歌内核。谷歌内核(Chromium)是...

    android4.0 Browser浏览器 源代码

    通过深入研究这个源代码,开发者可以学习到如何优化网页加载速度、提升用户体验,以及如何根据需求定制自己的浏览器应用。这对于Android应用开发者,尤其是希望涉足移动Web服务的开发者来说,是一份极其有价值的参考...

    应用源码之Browser.zip

    7. **缓存机制**:浏览器通常会缓存网页数据以提高加载速度,源码中可能涉及到SQLite数据库或磁盘LruCache的使用。 8. **Cookie管理**:对于登录状态的保持,浏览器需要处理Cookie。了解如何使用HttpCookie和Cookie...

    Android 5.0 Browser源码

    在Android 5.0中,Blink进一步优化,提供了更快的页面加载速度和更好的网页兼容性。 **2. V8 JavaScript引擎** Blink内嵌了V8 JavaScript引擎,它是Google为Chrome浏览器开发的高性能JavaScript引擎。V8以其快速的...

    python爬虫学习之淘宝模拟登录.docx

    # 不加载图片以加快页面加载速度 options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) # 设置为开发者模式,避免被网站检测到 options.add_experimental_option...

    android应用源码Zirco-browser浏览器.zip

    Zirco-browser可能采用了开源的WebKit或Chromium内核,这需要我们了解JavaScript引擎、布局渲染、网络请求等基础知识。 2. **UI架构**:Android应用界面通常基于Activity和Fragment构建。Zirco-browser的源码会展示...

    Android应用源码之zirco-browser浏览器源码.zip

    总之,Zirco-Browser的开源源码为Android开发者提供了一个难得的学习和实践机会,通过研究这个项目,不仅可以提升个人的编程技能,也能深入理解Android应用的开发流程和技术细节,为今后的项目开发打下坚实的基础。

    AndroidZirco-browser:超越海豚的开源浏览器.zip

    Android Zirco-browser 使用了先进的渲染引擎,如Chromium,以提供快速的页面加载速度和流畅的滚动体验。这种引擎通常比其他基于WebKit的浏览器更高效,能够更好地处理复杂的网页布局和JavaScript代码,从而提高...

    Android Zirco-browser:超越海豚的开源浏览器源码.rar

    Blink引擎以其快速的页面加载速度和良好的兼容性著称,为Zirco-browser提供了坚实的基础。同时,由于是开源项目,Zirco-browser可以根据Android设备的特性进行针对性优化,以实现更好的性能和电池效率。 在安全方面...

    Embedded Browser 2.0.0(Unity内嵌网页插件)

    - 控制:网址,后退,重新加载,调整大小等。 - Mipmap仿真着色器:更快的纹理更新,无闪烁 - 拦截新窗口并为其创建场景对象 - 极简主义JSON库 - <视频>支持Chromium的开放编解码器(h.264 / mp3未获得许可...

    【Android进阶】(9)WebView

    1. 合理使用缓存:开启离线缓存,提高网页加载速度。 ```java webView.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); ``` 2. 启用硬件加速:提升WebView的性能,减少内存消耗。 ```java ...

    Python库 | pytest-playwright-0.0.3.tar.gz

    with playwright.chromium.launch() as browser: page = browser.new_page() page.goto("http://example.com") assert page.title() == "Example Domain" ``` 在这个例子中,`test_example`函数使用了`...

    KitKat研究报告

    - 开发者现在能够利用WebView组件构建出与Chrome浏览器相似渲染效果和加载速度的应用程序。 - Android平台未来的浏览器将会变得更加多样化,同时也推动了HTML5在应用开发中的普及。 2. Android WebView模块的变化...

Global site tag (gtag.js) - Google Analytics