2016-04-18 5 views
1

は、私は私のマシン上にこのコードをコピーしてみました(この記事から:Date Format getting disturb when creating .CSV file in Java)をこの問題を自分のPCでどのように複製できますか?

package com.mufapscraping; 

//import java.io.BufferedWriter; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.util.ArrayList; 
//import java.util.Collections; 
import java.util.Iterator; 
//import java.util.List; 

import org.jsoup.Jsoup; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 

public class ComMufapScraping { 

boolean writeCSVToConsole = true; 
boolean writeCSVToFile = true; 
//String destinationCSVFile = "C:\\convertedCSV.csv"; 
boolean sortTheList = true; 
boolean writeToConsole; 
boolean writeToFile; 
public static Document doc = null; 
public static Elements tbodyElements = null; 
public static Elements elements = null; 
public static Elements tdElements = null; 
public static Elements trElement2 = null; 
public static String Dcomma = ", 2"; 
public static ArrayList<Elements> sampleList = new ArrayList<Elements>(); 

public static void createConnection() throws IOException { 
    System.setProperty("http.proxyHost", "191.1.1.123"); 
    System.setProperty("http.proxyPort", "8080"); 
    String tempUrl = "http://www.mufap.com.pk/nav_returns_performance.php?tab=01"; 
    doc = Jsoup.connect(tempUrl).get(); 
} 

public static void parsingHTML() throws Exception { 
    for (int i = 1; i <= 1; i++) { 

     tbodyElements = doc.getElementsByTag("tbody"); 
     //Element table = doc.getElementById("dataTable"); 

     if (tbodyElements.isEmpty()) { 
      throw new Exception("Table is not found"); 
     } 
     elements = tbodyElements.get(0).getElementsByTag("tr"); 

     for (Element trElement : elements) { 
      trElement2 = trElement.getElementsByTag("tr"); 
      tdElements = trElement.getElementsByTag("td"); 
      FileWriter sb = new FileWriter("C:\\convertedCSV2.csv", true); 
      for (Iterator<Element> it = tdElements.iterator(); it.hasNext();) { 
       if (it.hasNext()) { 
        sb.append(" \n "); 
       } 
       for (Iterator<Element> it2 = trElement2.iterator(); it.hasNext();) { 
        Element tdElement = it.next(); 
        sb.append(tdElement.text()); 
        if (it2.hasNext()) { 
         sb.append(" , "); 
        } 

       } 

       System.out.println(sb.toString()); 
       sb.flush(); 
       sb.close(); 
      } 

      System.out.println(sampleList.add(tdElements)); 
      /* for (Elements elements2 : zakazky) { 
      System.out.println(elements2); 
     }*/ 

     } 
    } 
} 

しかし、私は、Eclipseで実行するコードを取得することはできません。

  • ダウンロードされ、プロジェクトパスに

  • をjsoup jarファイルを追加しました:私は次のことを行っている

    Exception in thread "main" java.net.SocketTimeoutException: connect timed out 
    at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method) 
    at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:85) 
    at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:339) 
    at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200) 
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182) 
    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:172) 
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) 
    at java.net.Socket.connect(Socket.java:579) 
    at sun.net.NetworkClient.doConnect(NetworkClient.java:175) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432) 
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527) 
    at sun.net.www.http.HttpClient.<init>(HttpClient.java:211) 
    at sun.net.www.http.HttpClient.New(HttpClient.java:308) 
    at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(HttpURLConnection.java:1004) 
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:952) 
    at sun.net.www.protocol.http.HttpURLConnection.connect(HttpURLConnection.java:851) 
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:563) 
    at org.jsoup.helper.HttpConnection$Response.execute(HttpConnection.java:540) 
    at org.jsoup.helper.HttpConnection.execute(HttpConnection.java:227) 
    at org.jsoup.helper.HttpConnection.get(HttpConnection.java:216) 
    at exportDataFromWebsite.createConnection(exportDataFromWebsite.java:34) 
    at exportDataFromWebsite.main(exportDataFromWebsite.java:83) 
    

    :私は、私はそれを実行しようとしたとき、このようになります例外エラーを取得しますコード

イムPと同様に私のクラスやcsvファイルを名前付き

  • 問題が次の行にあることを確認してください:System.setProperty("http.proxyHost", "191.1.1.123"); System.setProperty("http.proxyPort", "8080"); String tempUrl = "http://www.mufap.com.pk/nav_returns_performance.php?tab=01"; doc = Jsoup.connect(tempUrl).get();

    しかし、私はこれを自分のPCで動作するように変更する方法はありません。私のPCがどのようなプロキシを使っているのかを知るには?どんな助けでもよろしくお願いします!

    Btw私は自分の利益のためにsomeonesコードをコピーしていません。自分のマシンで問題を再現しようとしていますが、便利な解決策を考え出していますが、実行しようとするとエラーになります。ありがとうございました

    また、もう1つの質問、コメントを外すとき//String destinationCSVFile = "C:\\convertedCSV.csv";「無効なエスケープシーケンス」というエラーが表示されます...なぜですか?私はその文字列をダブルクォートで許されていると思ったのですか?

  • 答えて

    0

    あなたはおそらくプロキシの背後にありませんか?その後、行削除します。それ以外の場合は

    System.setProperty("http.proxyHost", "191.1.1.123"); 
        System.setProperty("http.proxyPort", "8080"); 
    

    をあなたがプロキシの背後にある場合は、おそらく認証を、あなたが試すことができます:

    private static void setGlobalProxy(String proxyHost, int proxyPort, String authUser, String authPassword) { 
        if (proxyHost != null && !proxyHost.isEmpty()) 
         System.setProperty("http.proxyHost", proxyHost); 
        if (proxyPort > 0) 
         System.setProperty("http.proxyPort", ""+proxyPort); 
    
        if (authUser != null && authPassword != null) { 
         Authenticator.setDefault(new Authenticator() { 
          public PasswordAuthentication getPasswordAuthentication() { 
           return new PasswordAuthentication(authUser, authPassword.toCharArray()); 
          } 
         }); 
    
         System.setProperty("http.proxyUser", authUser); 
         System.setProperty("http.proxyPassword", authPassword); 
        } 
    } 
    
    関連する問題