问题描述
我写了一个抓抓的蜘蛛来抓取我作为start_urls传递的URL列表。
class PageScraper(scrapy.Spider):
name = 'pagescraper'
def __init__(self,args):
dispatcher.connect(self.spider_closed,signals.spider_closed)
self.start_urls = args.get('start_urls',[])
super(PageScraper,self).__init__()
def start_requests(self):
for url in self.start_urls:
yield scrapy.Request(url)
def parse(self,response):
try:
response_headers = response.headers.to_unicode_dict()
content_type = response_headers.get('content-type','')
if "text/html" in content_type:
# yield something from the web page content
except Exception:
debug_logger.error(traceback.format_exc())
def spider_closed(self,spider):
spider.logger.info('Spider closed: %s',spider.name)
现在存在一个要求,即搜寻器需要搜寻登录页面后面的页面。我需要处理具有不同身份验证类型的页面,例如基本HTTP,摘要,NLTM,表单。我浏览了草率的文档和许多StackOverflow链接,发现基本的HTTP身份验证和基于表单的身份验证都是可行的。对于基本的HTTP和基于表单的身份验证,我找到了有用的资源和实现。但是对于剩余的类型,由于我对身份验证过程的了解甚少,因此我很难找到一种方法或现有的实现方式,而且工作很艰难。
找到资源-
- 基本HTTP身份验证-scrappy docs link
- 基于表单的身份验证-Using loginform with scrapy
我经历了具有NTLM和摘要身份验证支持的请求包,但是由于scrapy正在使用其自己的Request类来进行请求调用,因此无法弄清楚如何将其集成到我现有的逻辑中。
有没有办法使用scrapy来实现其他两种身份验证机制,还是有办法在scrapy爬虫和抓取页面中集成第三方逻辑(请求auth)?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)