2012-04-22 4 views
2

Я довольно новичок в JSOUP, и у меня не возникало проблем с использованием Element.select по тегам или значениям id. Проблема, с которой я сталкиваюсь, заключается в том, как экранировать код javascript на странице. Здесь я загрузить документ:JSOUP: Разбор полей Javascript из HTML-документа?

Document doc = Jsoup.connect(pageUrl) 
       .userAgent(Agent) 
       .timeout(5000) 
       .get(); 

The JavaScript значение поле я пытаюсь извлечь следующий:

arrayGPSLocation["0"] = "-19473982376,6848295867"; 
arrayGPSLocation["1"] = "-19473982376,6848296245"; 

Поскольку эти значения массива не в стандартном -тэге <> является JSOUP подходящий способ сделать это? Мне нравится API JSOUP. Единственный способ взлома вместе рутина Струнный ... т.е.

int start = pageBuffer.indexOf("arrayGPSLocation[\" + counter + \"]"); 
int end = pageBuffer.indexOf(";"); 
String result = pageBuffer.subString(start,end); 

Этот псевдо-код примера будет иметь серьезные проблемы с производительностью при анализе больших страниц. Кто-нибудь знает, как это сделать с JSOUP, или я должен написать свой собственный скребок?

ответ

2

Все, что вы можете сделать с Jsoup - это элемент, содержащий код javascript, получить его значение как String и работать с этой строкой. Правильно, как вы делаете это в примере.

+0

Да, похоже, что вы правы на этом. Я столкнулся с Rhino из Mozilla, чтобы выполнить парсинг javascript, но я думаю, что было бы более эффективно писать мои собственные после захвата части javascript. – ThumbsDP

 Смежные вопросы

  • Нет связанных вопросов^_^