diff --git a/scrapy/linkextractors/lxmlhtml.py b/scrapy/linkextractors/lxmlhtml.py
index c952a5f83..7c41a88ff 100644
--- a/scrapy/linkextractors/lxmlhtml.py
+++ b/scrapy/linkextractors/lxmlhtml.py
@@ -65,9 +65,8 @@ class LxmlParserLinkExtractor(object):
if self.unique else links
def extract_links(self, response):
- html = Selector(response)
base_url = get_base_url(response)
- return self._extract_links(html, response.url, response.encoding, base_url)
+ return self._extract_links(response.selector, response.url, response.encoding, base_url)
def _process_links(self, links):
""" Normalize and filter extracted links
@@ -95,14 +94,13 @@ class LxmlLinkExtractor(FilteringLinkExtractor):
canonicalize=canonicalize, deny_extensions=deny_extensions)
def extract_links(self, response):
- html = Selector(response)
base_url = get_base_url(response)
if self.restrict_xpaths:
docs = [subdoc
for x in self.restrict_xpaths
- for subdoc in html.xpath(x)]
+ for subdoc in response.xpath(x)]
else:
- docs = [html]
+ docs = [response.selector]
all_links = []
for doc in docs:
links = self._extract_links(doc, response.url, response.encoding, base_url)
diff --git a/scrapy/linkextractors/sgml.py b/scrapy/linkextractors/sgml.py
index e4c2c274f..d045baa24 100644
--- a/scrapy/linkextractors/sgml.py
+++ b/scrapy/linkextractors/sgml.py
@@ -127,7 +127,7 @@ class SgmlLinkExtractor(FilteringLinkExtractor):
def extract_links(self, response):
base_url = None
if self.restrict_xpaths:
- sel = Selector(response)
+ sel = response.selector
base_url = get_base_url(response)
body = u''.join(f
for x in self.restrict_xpaths