在Objective C中点击HTML表单 - 像在Python中使用mechanize一样
我在Python中有一段代码,用mechanize这个库可以很简单地打开一个网址,然后点击提交按钮:
from mechanize import ParseResponse, urlopen, urljoin
response = urlopen("http://www.somesite.com/somepage")
forms = ParseResponse(response, backwards_compat=False)
form = forms[0]
print urlopen(form.click()).read()
现在我想问的是:有没有什么库或者简单的方法可以在Objective-C中做到这一点呢?
我见过一些类似的例子,使用NSURL的代码比较复杂,但因为我需要对很多不同的网站做这个操作,所以每次都要写几十行代码并调试,实在是太麻烦了。如果能像用mechanize那样简单就好了。
祝好,
布鲁诺
1 个回答
2
看看这个网站:http://allseeing-i.com/ASIHTTPRequest/。虽然它可能不是你想要的,但你可以把POST或GET的值发送到表单的目标页面。
假设你有一个页面http://test.com/form.php,上面有以下的表单:
<form name="login" method="POST" action="action.php">
<input name="username"><br />
<input name="password"><br>
<input type="submit">
</form>
你可以使用这段代码来提交这个表单。
NSURL *url = [NSURL URLWithString:@"http://test.com/action.php];
ASIFormDataRequest *request = [[[ASIFormDataRequest alloc] initWithURL:url] autorelease];
[request setPostValue:@"Admin" forKey:@"username"];
[request setPostValue:@"1234" forKey:@"password"];
[request startSynchronous];