2015-08-03 2 views
0

Я изо всех сил пытаюсь получить любую информацию из моего xPathQuery. Ссылка, которую я получил с помощью инструментов разработчика Chrome, и сделал это, щелкнув правой кнопкой мыши на выделенной строке на скриншоте. Я создаю приложение на основе рецептов и просто играю с одиночными URL-адресами, прежде чем пытаться его масштабировать. Помощь была бы чрезвычайно оценена!Почему я не получаю никаких данных после анализа данных HTML с помощью TFHpple

override func viewDidLoad() { 
    super.viewDidLoad() 

    let url=NSURL(string:"http://www.bbc.co.uk/food/recipes/roast_shoulder_of_lamb_92545") 

    let session = NSURLSession.sharedSession() 

    let task = session.dataTaskWithURL(url!, completionHandler: { (data, response, error) -> Void in 

     if error == nil { 

      var parser = TFHpple(HTMLData: data) 

      var xPString = "/html/body/table/tbody/tr[186]/td[2]/span[3]" 

      var nodes = parser.searchWithXPathQuery(xPString) as? [TFHppleElement] 

      println(nodes) 

     } 

    }) 

    task.resume() 


} 
+0

Ну, может быть, потому что вы объявляете синтаксический анализатор, называемый «парсер», и хочет получить к нему доступ как «tutorialParser» .searchWithXPath Запрос из учебника ... возможно, это проблема? –

+0

Есть ли сообщения об ошибке? –

ответ

0

Попробуйте переименовать следующую строку из

var nodes = tutorialParser.searchWithXPathQuery(xPString) as? [TFHppleElement] 

к

var nodes = parser.searchWithXPathQuery(xPString) as? [TFHppleElement] 

Edit 1

Я просто взглянул на html-код с URL-адреса, который вы пытаетесь проанализировать ... Я сделал поиск с помощью инструментов разработчика сафари для подстроки «tbody» ... кажется, что в html нет «tbody», поэтому ваш синтаксический анализатор не сможет его найти и, возможно, даст вам пустой массив, как он делает это сейчас ...

Вы можете попытаться выполнить поиск без «tbody» в xPString?

Так идет от

var xPString = "/html/body/table/tbody/tr[186]/td[2]/span[3]" 

в

var xPString = "/html/body/table/tr[186]/td[2]/span[3]" 

также есть сто восемьдесят шестые тры теги в таблице? 2-й тд в этом tr и 3 пролетах в этом td?

Edit 2

Хорошо, вот ваш парсер ....

https://gist.github.com/DennisWeidmann/27ea76b5aed4718cf4ce

и вот пример использования

https://gist.github.com/DennisWeidmann/a66ce53ad8691744d6a6

+0

О, я думаю, что сделал это, разместив здесь. нет сообщения об ошибке, просто «Узлы были нулевыми». [] « –

+0

ok позволяет протестировать его шаг за шагом ... Я поеду в github и посмотрю на readme ... –

+0

, если возможно, что вы мне объясните, что вы хотите сделать, я, может быть, могу предложить вам более легкое решение с NSScanner или NSRegularExpression ...? –

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

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