小编Pec*_*277的帖子

Java OCR库建议?

我需要查看一大堆图片,看看他们是否有关键字.任何人都可以推荐一个好的,可靠的OCR库吗?我很乐意为了准确而牺牲速度.

java ocr

11
推荐指数
1
解决办法
5万
查看次数

打开与Jsoup的连接,获取状态代码并解析文档

我正在使用jsoup创建一个类,它将执行以下操作:

  1. 构造函数打开与url的连接.
  2. 我有一个方法,将检查页面的状态.即200,404等
  3. 我有一个方法来解析页面并返回一个网址列表.#

下面是我正在尝试做的粗略工作,而不是非常粗糙,因为我一直在尝试很多不同的事情

public class ParsePage {
private String path;
Connection.Response response = null;

private ParsePage(String langLocale){
    try {
        response = Jsoup.connect(path)
                .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
                .timeout(10000)
                .execute();
    } catch (IOException e) {
        System.out.println("io - "+e);
    }
}

public int getSitemapStatus(){
    int statusCode = response.statusCode();
    return statusCode;
}

public ArrayList<String> getUrls(){
    ArrayList<String> urls = new ArrayList<String>();

 }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我可以获取页面状态,但是使用构造函数中已经打开的连接我不知道如何解析文档,我尝试使用:

Document doc = connection.get();
Run Code Online (Sandbox Code Playgroud)

但那是不行的.有什么建议?或者更好的方法来解决这个问题?

java connection jsoup

7
推荐指数
3
解决办法
3万
查看次数

使用HttpClient获取URL状态代码的最快方法是什么

使用HttpClient获取URL状态的最快方法是什么?我不想下载页面/文件,我只想知道页面/文件是否存在?(如果是重定向,我希望它遵循重定向)

java performance httpclient http-status-codes

7
推荐指数
2
解决办法
9329
查看次数

如何在IE选项卡中打开URL而不是新窗口 - Java

我有点像菜鸟,所以请耐心等待.我试图立即在Internet Explorer中打开很多网址.大约40个网址.

我有一个我的网址数组,我正在使用以下代码:

for (int i = 0; i < urls.length; i++){
        java.awt.Desktop.getDesktop().browse(java.net.URI.create(urls[i]));
}
Run Code Online (Sandbox Code Playgroud)

如果我已经打开IE,这可以完美地工作.但是,如果它尚未打开,则会创建40个新窗口,而不是制表符.我试图通过使用以下方法解决它:

for (int i = 0; i <= 9; i++){
        java.awt.Desktop.getDesktop().browse(java.net.URI.create(urls[i]));
        try {
            Thread.currentThread().sleep(200);
        } catch (InterruptedException ex) {
            Logger.getLogger(Test.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
Run Code Online (Sandbox Code Playgroud)

java browser url tabs

6
推荐指数
1
解决办法
1750
查看次数

处理连接错误和JSoup

我正在尝试创建一个应用程序来从网站上的多个页面中删除内容.我正在使用JSoup进行连接.这是我的代码:

for (String locale : langList){
        sitemapPath = sitemapDomain+"/"+locale+"/"+sitemapName;
        try {
            Document doc = Jsoup.connect(sitemapPath)
                    .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
                    .timeout(10000)
                    .get();

            Elements element = doc.select("loc");   
            for (Element urls : element) {
                System.out.println(urls.text());
                }
        } catch (IOException e) {
            System.out.println(e);
        }
    }
Run Code Online (Sandbox Code Playgroud)

一切都在大部分时间都很完美.但是,我希望能够做一些事情.

首先,有时404状态将返回或500状态可能是301.使用下面的代码,它将只打印错误并移动到下一个URL.我希望能够做的是尝试返回所有链接的url状态.如果页面连接打印200,如果不打印相关的状态代码.

其次我有时会发现这个错误"java.net.SocketTimeoutException:read timed out"我可以增加我的超时但是我宁愿尝试连接3次,在第3次失败时我想将URL添加到"失败"数组所以我可以在将来重试失败的连接.

知识比我更多的人可以帮助我吗?

java connection jsoup

6
推荐指数
2
解决办法
2万
查看次数

Selenium Webdriver vs Jsoup - 何时使用

我经常要在我工作的网站上运行测试用例.大多数时候我只需要检查网站上是否存在元素,或者我必须抓取网站的一些数据.到目前为止,我一直在使用Jsoup来完成这项工作.

我最近被介绍给Selenium Webdriver.我一直在阅读它,但我只想弄清楚何时最好使用它.在像我这样的情况下,检查页面上是否存在元素或者抓取数据我认为我仍然会更好地使用Jsoup?Selenium最适合填写表单并点击网站上的按钮?

java selenium web-scraping jsoup

6
推荐指数
1
解决办法
2929
查看次数

Laravel Datatables - 一个视图上的多个表

我使用 laravel 5.4 和最新版本的 yajra/laravel-datatables 作为服务。

我让它在页面上的一个数据表上运行良好。我想创建一个包含不相关表的仪表板。用户、产品、预订等

我希望我的控制器看起来像这样:

public function index(ProductsDataTable $productDatatable, UsersDataTable $userDatatable)
{    
    $user = Auth::user();

    $products = $user->products;

    return view('admin.dashboard', compact('products', 'user', 'productDatatable', 'userDatatable'));
}
Run Code Online (Sandbox Code Playgroud)

在我的刀刃上做

@section('content')
{!! $productDatatable->table() !!}
{!! $userDatatable->table() !!}
@endsection

@push('scripts')
{!! $dataTable->scripts() !!}
@endpush
Run Code Online (Sandbox Code Playgroud)

然而这显然是行不通的。我不确定如何继续。

我尝试为每个数据表创建一条路线,但不确定如何从仪表板控制器引用它。

php datatables laravel

6
推荐指数
2
解决办法
1万
查看次数

通过VPN /代理进行JSoup

我正在尝试使用JSoup来抓取临时服务器上的一些页面.要使用浏览器查看登台服务器上的页面,我需要连接到VPN.

我连接到VPN,但是当我使用JSoup尝试抓取页面时,它会保持超时.如何让我的程序使用VPN连接.或者在这里我还有其他什么我没有想到的?

注意:我也在程序的另一部分使用HttpClient.有没有办法我可以设置我的程序连接到VPN /代理程序初始化,所以JSoup和HttpClient都使用VPN /代理.

谢谢

java vpn proxy httpclient jsoup

5
推荐指数
2
解决办法
1万
查看次数

Jsoup格式错误的网址

我在使用JSoup连接到网址时遇到了问题.

我试图测试的网址是www.xbox.com/en-US/security,这是302(我认为)重定向到 http://www.xbox.com/en-US/Live/Account-Security.我已经设置了jsoup来跟随重定向并使用.headers("location")获取新的url.返回的网址是/ en-US/Live/Account-Security.我不知道如何处理它,我的代码如下:

while (i < retries){
        try {
            response = Jsoup.connect(checkUrl)
                    .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
                    .followRedirects(false)
                    .timeout(10000)
                    .execute();
            success = true;
            break;
        } catch (SocketTimeoutException ex){
            timeout = true;
        }  catch (MalformedURLException ep){
            malformedUrl = true;
        }catch (IOException e) {
            statusCode = 404;
        }
    }

private void getStatus(){
    if (success){
        statusCode = response.statusCode();
        success = false;
    }
    if (statusCode >= 300 && statusCode <= 399){
        //System.out.println("redirect: " +statusCode + " " …
Run Code Online (Sandbox Code Playgroud)

java jsoup

3
推荐指数
1
解决办法
5874
查看次数

Laravel 只允许所有者用户访问路由

我有一个包含用户和产品的应用程序。只有产品所有者才能查看产品。

如果用户猜测产品 ID,他们可能能够查看该产品。例如

http://booker.app/admin/products/32
Run Code Online (Sandbox Code Playgroud)

点击该链接将允许任何登录用户查看 ID 为 32 的产品。

这是有问题的路线:

Route::middleware(['middleware' => 'auth'])->prefix('admin')->group(function(){
    Route::resource('products', 'ProductController');
});
Run Code Online (Sandbox Code Playgroud)

我的产品控制器显示方法:

public function show(Product $product)
{        
    if($product->user_id !== Auth::user()->id){        
        return $this->forbidden('admin/products');
    }

    return $this->makeResponse('admin.products.product', compact('product'));
}
Run Code Online (Sandbox Code Playgroud)

禁止和 makeResponse 函数只是检查请求是否是 ajax 请求,如果是则返回 json。

正如您所看到的,我正在使用路由模型绑定,并且正在检查授权用户是否与产品 user_id 相同。基本上有没有更好的方法来检查用户是否是产品的所有者。

php authorization laravel

2
推荐指数
1
解决办法
4227
查看次数

更快的是:将一个数组传递给一个类并为每个循环执行一个操作,或者为一个类的每个循环执行一个操作

我想知道哪种方法在性能和最佳实践方面是正确的.

我有一系列的URL,我正在抓取这些页面的内容.我有一个单独的类来处理刮擦.

目前我将数组列表传递给类,然后该类循环遍历数组内容,为每个数组抓取内容.我相信这是最好的方式.

我想到的另一种方法是循环遍历数组,我会将每个URL传递给类.这似乎对我来说会慢一些,但我不确定.

如果这两种方法都可行,那么他们的专业和骗局是什么?

java arrays performance class

1
推荐指数
1
解决办法
97
查看次数

Jsoup连接和重试

我正在使用JSoup连接到网站.我有时会发现 JSoup会有连接超时,当发生这种情况时我想 JSoup重试连接,当它第3次失败时它会在数组列表中添加一个字符串.

我的代码目前是:

try {
        Document doc = Jsoup.connect(sitemapPath)
                .userAgent("Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.21 (KHTML, like Gecko) Chrome/19.0.1042.0 Safari/535.21")
                .timeout(10000)
                .get();

        Elements element = doc.select("loc");
        return element;
    } catch (IOException e) {
        return null;
    }
Run Code Online (Sandbox Code Playgroud)

我想用while循环做一些事情,但我必须返回元素,所以我不确定如何做到这一点.

java connection jsoup

1
推荐指数
1
解决办法
4849
查看次数

Java:尽可能有效地比较hashsets

我有3个哈希集.goodLinkSet,badLinkSet和testLinkSet.

goodLinkSet包含一个有效的URL列表,badLinkSet包含一个不起作用的URL列表.testLinkSet包含一个URL列表,我需要检查它们是否良好,这里的一些链接已经在其他两个集中进行了测试.

我想要做的是删除testLinkSet中出现在goodLinkSet和badLinkSet中的所有字符串/链接,这样我就不会多次测试URL.我希望尽可能快速有效地完成这项工作.每个循环的A似乎有点慢.

什么是最有效的运行方式?有什么功能可以帮我吗?任何建议将非常感谢!

java performance hashset

0
推荐指数
1
解决办法
608
查看次数