diff --git a/scrapy/http/request/form.py b/scrapy/http/request/form.py index 50533ea42..3b3fb4fca 100644 --- a/scrapy/http/request/form.py +++ b/scrapy/http/request/form.py @@ -32,10 +32,8 @@ class FormRequest(Request): @classmethod def from_response(cls, response, formname=None, formnumber=0, formdata=None, clickdata=None, dont_click=False, **kwargs): - from scrapy.selector.lxmldocument import LxmlDocument kwargs.setdefault('encoding', response.encoding) - root = LxmlDocument(response, lxml.html.HTMLParser) - form = _get_form(root, formname, formnumber, response) + form = _get_form(response, formname, formnumber) formdata = _get_inputs(form, formdata, dont_click, clickdata, response) url = form.action or form.base_url return cls(url, method=form.method, formdata=formdata, **kwargs) @@ -47,11 +45,10 @@ def _urlencode(seq, enc): for v in (vs if hasattr(vs, '__iter__') else [vs])] return urllib.urlencode(values, doseq=1) -def _get_form(root, formname, formnumber, response): - """ - Uses all the passed arguments to get the required form - element - """ +def _get_form(response, formname, formnumber): + """Find the form element """ + from scrapy.selector.lxmldocument import LxmlDocument + root = LxmlDocument(response, lxml.html.HTMLParser) if not root.forms: raise ValueError("No