diff --git a/scrapy/linkextractors/htmlparser.py b/scrapy/linkextractors/htmlparser.py
index fff9eabe6..14f4970b0 100644
--- a/scrapy/linkextractors/htmlparser.py
+++ b/scrapy/linkextractors/htmlparser.py
@@ -2,6 +2,7 @@
HTMLParser-based link extractor
"""
+import warnings
from HTMLParser import HTMLParser
from six.moves.urllib.parse import urljoin
@@ -9,12 +10,20 @@ from w3lib.url import safe_url_string
from scrapy.link import Link
from scrapy.utils.python import unique as unique_list
+from scrapy.exceptions import ScrapyDeprecationWarning
+
class HtmlParserLinkExtractor(HTMLParser):
def __init__(self, tag="a", attr="href", process=None, unique=False):
HTMLParser.__init__(self)
+ warnings.warn(
+ "HtmlParserLinkExtractor is deprecated and will be removed in "
+ "future releases. Please use scrapy.linkextractors.LinkExtractor",
+ ScrapyDeprecationWarning, stacklevel=2,
+ )
+
self.scan_tag = tag if callable(tag) else lambda t: t == tag
self.scan_attr = attr if callable(attr) else lambda a: a == attr
self.process_attr = process if callable(process) else lambda v: v
diff --git a/scrapy/linkextractors/sgml.py b/scrapy/linkextractors/sgml.py
index b1f3da416..88d2d5b91 100644
--- a/scrapy/linkextractors/sgml.py
+++ b/scrapy/linkextractors/sgml.py
@@ -21,7 +21,7 @@ class BaseSgmlLinkExtractor(SGMLParser):
warnings.warn(
"BaseSgmlLinkExtractor is deprecated and will be removed in future releases. "
"Please use scrapy.linkextractors.LinkExtractor",
- ScrapyDeprecationWarning
+ ScrapyDeprecationWarning, stacklevel=2,
)
SGMLParser.__init__(self)
self.scan_tag = tag if callable(tag) else lambda t: t == tag
@@ -104,7 +104,7 @@ class SgmlLinkExtractor(FilteringLinkExtractor):
warnings.warn(
"SgmlLinkExtractor is deprecated and will be removed in future releases. "
"Please use scrapy.linkextractors.LinkExtractor",
- ScrapyDeprecationWarning
+ ScrapyDeprecationWarning, stacklevel=2,
)
tags, attrs = set(arg_to_iter(tags)), set(arg_to_iter(attrs))