2016-04-23 4 views
0

Я использую Jsoup для извлечения деталей с веб-страницы и записи в текстовый файл. Возможно ли, чтобы я мог извлечь только его части? Например, в следующей ссылке я хочу взять только описание задания.Только очистить конкретные данные с веб-страницы

http://aldogroup.luceosolutions.com/recruit/stores/advert_details.php?id=3136&_lang=en&partner_id=139

Иногда объявления о работе из разных сайтов, и поэтому формат HTML тегов может отличаться. Мне нужен способ получить только описание работы. Следующий код извлекает все на веб-странице. Как я могу получить только описание работы? Пожалуйста помоги.

public class MainCollector { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 

     Document doc; 
     try { 
      doc = Jsoup.connect("http://aldogroup.luceosolutions.com/recruit/stores/advert_details.php?id=3136&_lang=en&partner_id=139").get(); 
      String title = doc.title(); 
      String body = doc.body().toString(); 
      Document convertText = Jsoup.parseBodyFragment(body); 
      String convertedText = convertText.text(); 
      System.out.println("Title:" + title); 
      System.out.println("Body:" + convertedText); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 

ответ

1

Вы можете использовать это -

Elements e = doc.select(".annonce > p:nth-child(5)"); 
System.out.println(e.text()); 

Чтобы получить право CSS selector вы можете открыть инструменты разработчика Вашего браузера (нажав клавишу F12), а затем выбрать инструмент инспектор.
Вы также должны добавить user agent строку к вашему запросу, так что вы получите EXECT же страницу как из вашего браузера и вашей программы -

doc = Jsoup.connect("http://aldogroup.luceosolutions.com/recruit/stores/advert_details.php?id=3136&_lang=en&partner_id=139") 
       .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0") 
       .get(); 
+0

Для этой страницы: https://sjobs.brassring.com/TGWebHost /jobdetails.aspx?jobId=88557&PartnerId=25592&SiteId=5175&codes=INT-INDEED Я хочу получить только содержимое тега div "PrimaryContentBlock". Как указать это в коде? –

+1

Ну, чтобы получить содержимое этого конкретного тега, вы можете использовать 'Elements e = doc.select (" # PrimaryContentBlock ");' – TDG