2011-04-08 92 views
1

如何从控制台应用程序或库中获取网页内容?我的意思是,没有UI元素。目标C:获取页面内容

这就是我的意思是在Python

from urllib import urlopen 
str = urlopen("http://www.google.com").read() 

或php

$str = file_get_contents('http://www.google.com'); 

或C#

using System.Net; 
WebClient client = new WebClient(); 
string str = client.DownloadString("http://www.google.com"); 

感谢

+0

3,500个意见,而不是一个投票的问题......圣牛? +1 – 2015-01-23 21:48:14

回答

5

NSURLConnection的是Cocoa使用的类,它的使用是非常简单的...

首先,你需要创建一个包含你想读的URL的NSURLRequest的实例...

NSURLRequest *theRequest=[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.stackoverflow.com"] 

创建一个NSURLConnection的处理您的请求......

NSURLConnection *theConnection=[[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 

注意init方法的第二个参数是一个代表。该委托需要实现以下的一套方法......

connection:didReceiveResponse: 
connection:didReceiveData: 
connection:didFailWithError: 
connectionDidFinishLoading: 

一旦NSURLConnection的初始化的下载将开始。您可以通过向对象发送取消消息来随时取消它。

一旦有数据被读取,连接将调用连接:didReceiveData:它的委托传递一个NSData实例作为第二个参数的方法。作为连接流,你的数据,以便使用NSMutableData的实例来汇总响应这个方法将被调用多次...

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
    [mutableData appendData data]; 
} 

一旦URL的完整内容已经被读connectionDidFinishLoading:(NSURLConnection的*)方法被调用。此时释放连接并使用您的数据。

-1

答案在这里:

objective c pulling content from website

记得刚加入框架的Webkit

+0

嗨@Pistacchio,我知道这是一个古老的问题,但是:1.您应该使用标记标记为重复项,并且2.该链接不回答原始问题。 – 2016-09-02 06:25:53

1

检查出NSURLConnection的文档。这是获取它的异步方式。如果您不介意阻塞该线程,则还可以在NSString上检出stringWithContentsOfURL:encoding:error: