繁体   English   中英

使用Objective-C从网站“提取”图像和特定文本

[英]'Pull' Images and Specific Text from a Website using Objective-C

顾名思义。 我看过这个问题的其他版本,它们并不能完全满足我的要求。

我的目标是从网站提取数据。 例如,假设这个宠物收养网站 从这里,该应用程序将能够指定您是否想要猫,狗,豚鼠,鸟,龙等等。 然后,它将带您到一个显示以下内容的ViewController

  1. 动物的照片。
  2. 动物的名字。
  3. 动物的“关于我”。
  4. 最后是动物的价格。

当然,我将能够显示所有信息,但是我不太擅长在线功能。

如何获取上述信息并将其存储为可以用来查看动物的方式?

您只能通过javascript与网络视图进行交互。 您只能传输“字符串数据” ..因此,获取图片的方法必须是:在JS端转换base64编码的数据,传输并在objC中使用它,然后重建UIImage。


不重新发明轮子,我想提出自己的项目(免责声明:自己的代码):

它为IOS和OSX提供了易于使用的Javascript-ObjC桥-部分基于JSBridge项目的思想

https://github.com/Daij-Djan/DDEnhancedJSBridge

这是一个很晚的答案,但我认为它可能仍对您的未来有所帮助。 您可以解析网站,这是正确的方法,但是我将向您展示如何以不同的方式进行分析,这也可以用于读取xml,html,.com,任何内容以及.rss,因此它可以阅读RSS Feed。
这里 :

这可以得到您的第一段,如果您要求,我将向您展示如何获得第二段,依此类推。 因此,如果您想赚钱,请更改扫描仪以找到$ Title是名称,但如果没有告诉我,我将向您展示如何获取第二个标题或标题。 看到这个和下来。 我将向您展示如何从整个网站获取html或xml,以便您可以看到网站的整个代码并查找,因此请先阅读网站,然后阅读代码,然后在代码查找中看到狗的名字。标题标签下或标题下的内容,然后根据需要更改代码,请阅读整篇文章以了解所有内容。 以下是如何获取信息的主要代码。 转到第二个代码块,以了解如何在日志或控制台中获取网站的代码。 要查找您的图像,请通过NSLog并查找任何图像链接,例如www.example.com/images/image.jpg或image.png或image.gif或某些图像扩展名,然后查看启动此代码的代码是或在html和xml中有100个图像代码,请在代码中查找url,然后在扫描仪中使用它来更改

到您的代码,然后确保仅图像的url仍然存在,就像不断将其缩短直到您只有URL为止。

所以你有了

您想要的:www.example.com/images/image.jpg

您将使用下面的扫描仪并更改

<media:content url:\\"因此将其扫描到静态,因此,如果您知道该部分将始终相同,则将其扫描到该位置,然后扫描仪的第二部分以\\"结尾\\"

看到大代码下面的第一个代码块了吗? 这是我们需要更改的部分-

NSString * webString2222 = mastaString;

        NSScanner *stringScanner2222 = [NSScanner scannerWithString:webString2222];



        NSString *content2222 = [[NSString alloc] init];




        //Change <p> to suit your need like <description> or <h1>
        [stringScanner2222 scanUpToString:@"<p>" intoString:Nil];



        [stringScanner2222 scanUpToString:@"." intoString:&content2222];







        NSString *filteredTitle = [content2222 stringByReplacingOccurrencesOfString:@"<p>" withString:@""];

        description.text = filteredTitle;

在我们的情况下,我们将此部分更改为-

[stringScanner2222 scanUpToString:@"<media:content url:\"" intoString:Nil];
                [stringScanner2222 scanUpToString:@"\">" intoString:&content2222];

现在它具有url,但扫描仪的第一部分始终保留,因此请使用-

NSString * filteredTitle = [content2222 stringByReplacingOccurrencesOfString:@“

然后使用它下载图像-

NSURL * imageURL = [NSURL URLWithString:[filteredTitle stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
        NSData *imageData = [NSData dataWithData:UIImagePNGRepresentation([UIImage imageWithData:[NSData dataWithContentsOfURL:imageURL]])];

        UIImage * image = [UIImage imageWithData:imageData];

        [imageView setImage:image];

//这是您的URL NSURL * URL = [NSURL URLWithString:@“ URL HERE”]; //这是您提取(不要更改)的数据NSData * data = [NSData dataWithContentsOfURL:URL];

// Assuming data is in UTF8. (dont change)
NSString *string = [NSString stringWithUTF8String:[data bytes]];
//Your textView your not done.
description.text = string;



//Do this with your textview

NSString *webStringz = description.text;



// Leave this
NSString *mastaString;
mastaString = webStringz;
{
    NSString *webString2222 = mastaString;



    NSScanner *stringScanner2222 = [NSScanner scannerWithString:webString2222];



    NSString *content2222 = [[NSString alloc] init];




    //Change <p> to suit your need like <description> or <h1>
    [stringScanner2222 scanUpToString:@"<p>" intoString:Nil];



    [stringScanner2222 scanUpToString:@"." intoString:&content2222];







    NSString *filteredTitle = [content2222 stringByReplacingOccurrencesOfString:@"<p>" withString:@""];

    description.text = filteredTitle;


}

头衔? 同样的协议修改<p><title>在RSS <description><title> 图片 ? 同样的操作可以将<p> to what ever your RSS or website uses to get a image to find But remember for both of them when you change the更改为<p> to what ever your RSS or website uses to get a image to find But remember for both of them when you change the

`您看到的链接显示您的stringByReplacingOccurences也必须更改。

出来,那么您必须删除它并使代码如下:

//This is your URL
        NSURL *URL = [NSURL URLWithString:@"URL HERE"];
        //This is the data your pulling (dont change)
        NSData *data = [NSData dataWithContentsOfURL:URL];

        // Assuming data is in UTF8. (dont change)
        NSString *string = [NSString stringWithUTF8String:[data bytes]];
        //Your textView your not done.
        description.text = string;
        NLog(@"%@", string)


        //Do this with your textview

        NSString *webStringz = description.text;



        // Leave this
        NSString *mastaString;
        mastaString = webStringz;

现在检查您的日志,它显示您整个网站的html或rss代码,然后滚动并阅读它,找到您的图像链接,并在它之前检查代码,然后将String Scanner更改为您的需求,这非常棒,您必须更改stringByReplacingOccurences 。

就像我说的那样,当您使用这种方法来处理图像时,图像会有些棘手,但是一旦您学会了XML解析,它就会容易得多,大声笑。 如果您有要求,我会告诉您如何做。 告诉我您在浏览html或xml时是否遇到问题,然后再次指定哪个网站,我将进行浏览,并告诉您如何获取所需的一切。 确保 :

如果您想让我向您展示如何使用XML进行操作,请发表评论。 如果您想让我告诉您如何找到第二段或图片或标题或其他内容,请评论。

如果您仅需任何评论。

再见,我提供的代码很有趣,有什么不对劲! !!!!

:d

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM