refactor test_linkextractors
refactor test_linkextractors

* rename LinkExtractorTestCase to BaseSgmlLinkExtractorTestCase
* add BaseLinkExtractorTestCase link extractor tests can inherit from
  and decouple it from SgmlLinkExtractor
* add an extra check for deny_extensions
* xfail test_restrict_xpaths_with_html_entities for LxmlLinkExtractor explicitly

kashyap32/scrapy,cleydson/scrapy,JacobStevenR/scrapy,hansenDise/scrapy,fafaman/scrapy,livepy/scrapy,JacobStevenR/scrapy,Lucifer-Kim/scrapy,rklabs/scrapy,yarikoptic/scrapy,jc0n/scrapy,dgillis/scrapy,shaform/scrapy,shaform/scrapy,rolando/scrapy,ArturGaspar/scrapy,kashyap32/scrapy,kashyap32/scrapy,olafdietsche/scrapy,cleydson/scrapy,rolando-contrib/scrapy,darkrho/scrapy-scrapy,tliber/scrapy,csalazar/scrapy,crasker/scrapy,Zephor5/scrapy,TarasRudnyk/scrapy,finfish/scrapy,mgedmin/scrapy,github-account-because-they-want-it/scrapy,moraesnicol/scrapy,jeffreyjinfeng/scrapy,pombredanne/scrapy,olafdietsche/scrapy,arush0311/scrapy,Ryezhang/scrapy,zjuwangg/scrapy,YeelerG/scrapy,w495/scrapy,w495/scrapy,yarikoptic/scrapy,dacjames/scrapy,hectoruelo/scrapy,Allianzcortex/scrapy,ENjOyAbLE1991/scrapy,Cnfc19932/scrapy,Chenmxs/scrapy,dacjames/scrapy,nfunato/scrapy,dracony/scrapy,kimimj/scrapy,cyrixhero/scrapy,dangra/scrapy,YeelerG/scrapy,wujuguang/scrapy,redapple/scrapy,wujuguang/scrapy,cyberplant/scrapy,crasker/scrapy,zackslash/scrapy,hectoruelo/scrapy,cursesun/scrapy,wangjun/scrapy,TarasRudnyk/scrapy,kmike/scrapy,taito/scrapy,pawelmhm/scrapy,Lucifer-Kim/scrapy,darkrho/scrapy-scrapy,wangjun/scrapy,nfunato/scrapy,cursesun/scrapy,jc0n/scrapy,GregoryVigoTorres/scrapy,rahulsharma1991/scrapy,dracony/scrapy,elacuesta/scrapy,Ryezhang/scrapy,cyberplant/scrapy,rolando-contrib/scrapy,darkrho/scrapy-scrapy,Zephor5/scrapy,pablohoffman/scrapy,pawelmhm/scrapy,tliber/scrapy,fpy171/scrapy,haiiiiiyun/scrapy,dgillis/scrapy,carlosp420/scrapy,avtoritet/scrapy,johnardavies/scrapy,tliber/scrapy,ssh-odoo/scrapy,Cnfc19932/scrapy,dangra/scrapy,1yvT0s/scrapy,kmike/scrapy,songfj/scrapy,kimimj/scrapy,Digenis/scrapy,famorted/scrapy,Digenis/scrapy,wangjun/scrapy,finfish/scrapy,xiao26/scrapy,xiao26/scrapy,nikgr95/scrapy,songfj/scrapy,agreen/scrapy,barraponto/scrapy,Preetwinder/scrapy,eLRuLL/scrapy,KublaikhanGeek/scrapy,haiiiiiyun/scrapy,ENjOyAbLE1991/scrapy,rolando/scrapy,kimimj/scrapy,fafaman/scrapy,songfj/scrapy,agreen/scrapy,kazitanvirahsan/scrapy,hansenDise/scrapy,GregoryVigoTorres/scrapy,1yvT0s/scrapy,rahulsharma1991/scrapy,hansenDise/scrapy,Adai0808/scrapy-1,nowopen/scrapy,taito/scrapy,Lucifer-Kim/scrapy,nfunato/scrapy,mgedmin/scrapy,scrapy/scrapy,Bourneer/scrapy,mlyundin/scrapy,kmike/scrapy,cursesun/scrapy,Bourneer/scrapy,umrashrf/scrapy,livepy/scrapy,nowopen/scrapy,rootAvish/scrapy,GregoryVigoTorres/scrapy,ssh-odoo/scrapy,cyberplant/scrapy,cleydson/scrapy,Timeship/scrapy,Cnfc19932/scrapy,yidongliu/scrapy,eLRuLL/scrapy,rklabs/scrapy,z-fork/scrapy,taito/scrapy,ssteo/scrapy,umrashrf/scrapy,haiiiiiyun/scrapy,z-fork/scrapy,avtoritet/scrapy,huoxudong125/scrapy,rahulsharma1991/scrapy,csalazar/scrapy,wenyu1001/scrapy,zorojean/scrapy,Adai0808/scrapy-1,zackslash/scrapy,rootAvish/scrapy,ArturGaspar/scrapy,Chenmxs/scrapy,YeelerG/scrapy,Parlin-Galanodel/scrapy,shaform/scrapy,fpy171/scrapy,livepy/scrapy,KublaikhanGeek/scrapy,Digenis/scrapy,lacrazyboy/scrapy,mlyundin/scrapy,pombredanne/scrapy,foromer4/scrapy,JacobStevenR/scrapy,nikgr95/scrapy,redapple/scrapy,scrapy/scrapy,zjuwangg/scrapy,lacrazyboy/scrapy,Adai0808/scrapy-1,github-account-because-they-want-it/scrapy,w495/scrapy,famorted/scrapy,jdemaeyer/scrapy,yidongliu/scrapy,arush0311/scrapy,starrify/scrapy,Preetwinder/scrapy,wenyu1001/scrapy,Preetwinder/scrapy,agreen/scrapy,lacrazyboy/scrapy,github-account-because-they-want-it/scrapy,zjuwangg/scrapy,ENjOyAbLE1991/scrapy,csalazar/scrapy,hectoruelo/scrapy,kazitanvirahsan/scrapy,ssh-odoo/scrapy,rolando/scrapy,pablohoffman/scrapy,Allianzcortex/scrapy,foromer4/scrapy,rootAvish/scrapy,Ryezhang/scrapy,starrify/scrapy,dangra/scrapy,pawelmhm/scrapy,moraesnicol/scrapy,foromer4/scrapy,elacuesta/scrapy,kazitanvirahsan/scrapy,barraponto/scrapy,huoxudong125/scrapy,jdemaeyer/scrapy,Timeship/scrapy,rolando-contrib/scrapy,Bourneer/scrapy,jdemaeyer/scrapy,carlosp420/scrapy,wenyu1001/scrapy,mgedmin/scrapy,jeffreyjinfeng/scrapy,huoxudong125/scrapy,dacjames/scrapy,starrify/scrapy,pablohoffman/scrapy,carlosp420/scrapy,moraesnicol/scrapy,cyrixhero/scrapy,yidongliu/scrapy,Zephor5/scrapy,dracony/scrapy,redapple/scrapy,ssteo/scrapy,1yvT0s/scrapy,nikgr95/scrapy,finfish/scrapy,KublaikhanGeek/scrapy,fafaman/scrapy,fpy171/scrapy,barraponto/scrapy,johnardavies/scrapy,johnardavies/scrapy,z-fork/scrapy,crasker/scrapy,nowopen/scrapy,zorojean/scrapy,Allianzcortex/scrapy,zackslash/scrapy,arush0311/scrapy,mlyundin/scrapy,jc0n/scrapy,scrapy/scrapy,Timeship/scrapy,avtoritet/scrapy,yarikoptic/scrapy,xiao26/scrapy,TarasRudnyk/scrapy,dgillis/scrapy,cyrixhero/scrapy,pombredanne/scrapy,ArturGaspar/scrapy,wujuguang/scrapy,jeffreyjinfeng/scrapy,rklabs/scrapy,Chenmxs/scrapy,olafdietsche/scrapy,zorojean/scrapy,famorted/scrapy,Parlin-Galanodel/scrapy,Parlin-Galanodel/scrapy,ssteo/scrapy,umrashrf/scrapy,elacuesta/scrapy,eLRuLL/scrapy