我想屏幕抓一个网站,为此我想使用Http,Socks4和Sock5代理.所以我的问题如下:
>是否可以在不使用任何其他外部API的情况下通过Java使用这些代理?例如,是否可以通过这些代理通过HttpURLConnection发送请求?
>如果不可能,那么我可以使用哪些其他外部API?
>我是通过使用HtmlUnit提供的无头浏览器来实现的,但是加载甚至简单的网页也需要时间,所以请你建议我提供其他API(如果有的话)提供快速加载网页的无头浏览器.我不想打开包含大量AJAX或Javascript代码的网页.我只需要通过无头浏览器点击表单按钮.
Is it possible to use these proxies through Java without using any other external API? For instance,Is it possible to send a request through
HttpURLConnection
through these proxies?
是的,您可以通过使用(全局)系统属性,使用Proxy
类或使用ProxySelector
来配置代理.后两个选项从Java 5开始可用,并且更灵活.如jarnbjo所述,请查看Java Networking and Proxies了解所有细节.
I was doing it by using a headless browser provided by HtmlUnit but it takes time to load even simple webpages,so could you please suggest me other APIs (if any) that provide headless browsers that are fast in loading webpages. I don’t want to open webpages that contain heavy AJAX or Javascript code. I just need to click on the forms button through the headless browser.
不幸的是,我能想到的第一个选择是基于HtmlUnit(如JWebUnit或WebTest)或更慢(Selenium,WebDriver – 您可以在无头模式下运行).但是,如果您不需要高级JavaScript支持,也许可以尝试HttpUnit.