如何从网站获取图像源-Swift&Kanna

swift html-parsing

430 观看

1回复

350 作者的声誉

我目前正在尝试使用Kanna和Swift 解析网站上的图像链接。

但是,当我尝试使用doc.css或doc.xcpath时,它不起作用。我已经使用doc.css来解析标题和日期,但是,我不确定如何解析图像源。另外,如果可以的话,如果您可以在我的UIImageView(由IBOutlet链接)中使用图像链接的方法中,我也希望这样做。

以下是我尝试过的代码,以及网站本身的inspect元素功能的摘要。

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
    }

检查网站元素

作者: Rajat Khare 的来源 发布者: 2017 年 9 月 15 日

回应 1


0

350 作者的声誉

决定

这是我找到图像来源并将其用于放置在我的视图控制器中的解决方案。

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
                }
            }


        }
作者: Rajat Khare 发布者: 2017 年 9 月 17 日
32x32