Щелчок формы HTML в Objective C - как использование mechanize в Python - PullRequest
2 голосов
/ 20 сентября 2011

У меня есть этот код на Python, который довольно просто сделать с механизатором, просто зайдите в URL и нажмите кнопку отправки:

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, которые довольно велики, но, поскольку я буду делать это с кучей разных сайтов, не похоже на простую вещь, чтобы пройти через несколько десятков строк кода к каждому из них и отладить все, если есть какой-то простой способ, как с механизировать.

С уважением, Bruno

1 Ответ

2 голосов
/ 20 сентября 2011

Проверьте этот сайт: 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];
...