2017-09-15 1 views
0

J'essaye actuellement d'analyser un lien d'image d'un website en utilisant Kanna et Swift. Cependant, lorsque j'essaie d'utiliser doc.css ou doc.xcpath, cela ne fonctionne pas. J'ai utilisé doc.css pour analyser les titres et les dates, cependant, je ne suis pas sûr de la façon dont je peux analyser la source de l'image. Aussi si possible, je voudrais que vous incluiez dans votre réponse un moyen d'utiliser le lien de l'image dans mon UIImageView (lié par IBOutlet).Comment obtenir une source d'image à partir d'un site Web - Swift & Kanna

Voici le code que j'ai essayé ainsi qu'un extrait de la fonctionnalité d'inspection du site Web lui-même.

func parseHTML(html: String) -> Void { 
     if let doc = Kanna.HTML(html: html, encoding: String.Encoding.utf8) { 

      for link in doc.xpath(".//div[@class='loop-thumb'/a[1]/img[1]]") { 

       print(link.text)//where I am trying to get the image source 
       self.imageURLs.append(link.text)//array of all image links 
      } 

     } 
     self.postTableView.reloadData()//my tableview name 
    } 

inspect element of website

Répondre

0

Voici ma solution pour trouver la source d'une image et l'utiliser pour le placer dans mon contrôleur de vue.

func parseHTML(html: String) -> Void { 
     if let doc = Kanna.HTML(html: html, encoding: String.Encoding.utf8) { 

      for item in doc.xpath("//div[@class='loop-thumb']/a") {//goes through the xpath and looks at the directories for each one that matches 

       let imageURL = (item.at_xpath("img")?["src"])//gets the image source 

       if(imageURL! == "https://s0.wp.com/wp-content/themes/premium/mh-magazine/images/noimage_174x131.png"){ //checks if no image, and replaces with The Oracle placeholder image 
        self.imageURLs.append("https://scontent.fsnc1-1.fna.fbcdn.net/v/t1.0-9/12002228_10153530981476668_4060049645901806384_n.jpg?oh=daf19a8eaf94db01fddd0516e25146f8&oe=5A4F5E34")//appends placeholder image for each article with no image 
       } 
       else { 
        self.imageURLs.append(imageURL!)//appends the image URL to the array of image urls 
       } 
      } 


     }