2016-09-08 14 views
0

ページから一部のデータを削り取るのに多くの問題があります(例:http://www.arena-offshore.com/crew-boats.html)。私たちはデータを取得する許可を持っていますが、どのような形式であれ、私たちにそれを与えるのは「忙しい」です。iframeページからのWebスクレイピング

私はChrome用のWeb Scraperプラグイン、import.ioを試してみました。もっと複雑なプログラムですが、私はそれを少し超えています。まず初めに、プログラムは各船舶への異なるリンクを識別するように見えないので、個々のフィールドを掻き取ることさえできます。だから私は誰もが各船への異なるリンクをつかむ方法を知っていると思う、私は残りを解決することができます。誰にでもアイデアはありますか?私は自分のスキルが最大ではないことを知っていますが、誰かが私を正しい方向に向けることを願っています。

感謝HTMLパーサjsoupでのJavaの使用について

アレックス

+0

あなたは実際にどの言語を知っていますか、またはコードを実行するために何を使用する予定ですか? –

答えて

0

どのように? Jsoupは、CSSセレクタを使用して特定のHTML要素を取得しながら、Webサイトを解析するための素晴らしいツールです(javascriptに依存しない場合)。


Javaコード

import java.io.IOException; 
import java.util.ArrayList; 
import java.util.List; 

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

public class Scraper { 

    List<Category> categories = new ArrayList<>(); 

    static class Category { 
     private int categoryNumber; 
     private String title; 

     public Category(int categoryNumber, String title) { 
      this.categoryNumber = categoryNumber; 
      this.title = title; 
     } 

     public int getCategoryNumber() { 
      return categoryNumber; 
     } 

     public String getTitle() { 
      return title; 
     } 
    } 

    public Scraper(){ 
     categories.add(new Category(1, "CREW BOATS")); 
     categories.add(new Category(2, "TUG BOATS")); 
     categories.add(new Category(3, "AHT & AHTS")); 
     categories.add(new Category(4, "SUPPLY/UTILITY VESSELS")); 
     categories.add(new Category(5, "BARGES")); 
     categories.add(new Category(6, "MISCELLANEOUS")); 
    } 

    private void scrapeCategory(Category category){ 

     System.out.println("\n"+category.getTitle()+"\n"); 
     String searchUrl = "http://www.arena-offshore.com/iframe/list/index.php?category=" + category.getCategoryNumber() + "&page="; 
     int pageIndex=1; 
     Document doc; 

     while (true) { 

      try { 
       doc = Jsoup.connect(searchUrl + pageIndex) 
         .userAgent(
           "Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36") 
         .referrer("http://www.arena-offshore.com/").get(); 

       if (doc.select("#pu132").isEmpty()) { // no more results 
        break; 
       } 

       for (Element element : doc.select("#pu132")) { 
        String boat = element.select("[data-muse-uid=\"U159\"]").first().text(); //ID 
        boat += "\n\t\t" + element.select("a").first().attr("href"); //HREF 
        boat += "\n\t\t" + element.select("[data-muse-uid=\"U158\"]").get(0).text(); //TYPE 
        boat += "\n\t\t" + element.select("[data-muse-uid=\"U158\"]").get(1).text(); // LOCATION 
        boat += "\n\t\t" + element.select("[data-muse-uid=\"U153\"]").first().text(); // BRIEF DETAILS 
        System.out.println("\t"+boat); 
       } 

       pageIndex++; 

      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

    public void scrapeAllCategories(){ 
     for (Category category : categories) { 
      scrapeCategory(category); 
     } 
    } 

    public static void main(String[] args) { 
     new Scraper().scrapeAllCategories(); 
    } 

} 

:あなたはdownload the jsoup core libraryadd it to your build pathする必要があります。


出力

CREW BOATS 

    AR-C1002 
     http://www.arena-offshore.com/agent-boat-for-sale-AR-C1002.html 
     AGENT BOAT 
     EAST MED. 
     FOR SALE 14 X 4 X 1.9 (DEPTH)M, 2007 BUILT 630 BHP, 12 PERSONEL, IN EAST MED. 

    ... 

    AR-C1000 
     http://www.arena-offshore.com/AR-KED.html?page=13 
     CREW BOAT 
     SOUTH AMERICA 
     FOR SALE 17 X 5 X 2.18M, 2009 BUILT 1200 BHP, IN SOUTH AMERICA 

TUG BOATS 

    AR-KTK 
     http://www.arena-offshore.com/single-screw-tug-boat-AR-KTK.html 
     SINGLE SCREW 
     TURKEY 
     FOR SALE 1998 BUILT/ 2008 REBUILT 1000 HP/16 TBP 

    ... 

AHT & AHTS 

    AR-RZA 
     http://www.arena-offshore.com/AR-RZA.html 
     ANCHOR HANDLING TUG/TOWING 
     AFRICA 
     FOR SALE 36 X 10 X 4 M (MAX DRAFT) 4400 BHP/58 TBP 

    ... 

SUPPLY/UTILITY VESSELS 

    AR-U5001 
     http://www.arena-offshore.com/survey-vessel-in-south-east-asia-AR-U5001.html 
     SURVEY SUPPOT VESSEL 
     SOUTH EAST ASIA 
     FOR SALE 20 X 6 X 1.5 (DRAFT)M, 2012 BUILT, IRS CLASS 650 BHP, 50 M2 DECK SPACE 

    ... 

BARGES 

    AR-KLM 
     http://www.arena-offshore.com/AR-KLM.html 
     ACCOMMODATION 
     SHETLANDS 
     FOR CHARTER 1993 BUILT MAJOR CONVERSION 2004 AND 2013 

    ... 

MISCELLANEOUS 

    AR-SAA 
     http://www.arena-offshore.com/AR-SAA.html 
     SHALLOW DRAFT MPP/WORKBOAT 
     - 
     FOR CHARTER 2800 HP/37.3 TBP CERTIFIED 

    ... 

注:短縮出力、代わりの...は、印刷された多くの結果があります。

+0

ありがとう、私は今夜家に帰ると病気になる –

+0

@AlexBairdこれは解決されましたか?その場合は、回答として受け入れるか、ここにフォローアップの質問を投稿してください。 –

+0

ありがとうF.Klein。私はこれに新しいので、私は思ったよりも少し時間がかかりますが、それは進行中です! –

関連する問題