官网上说支持模拟登录,在中间件中
接下来实现模拟登录
蜘蛛文件如下:
#第二个蜘蛛,模拟用户名密码登录
class LoginSpider(scrapy.Spider):
name = "testlogin"
start_urls=["http://www.kgc.cn/member/login"]
def parse(self, response):
return scrapy.FormRequest.from_response(
response,
formdata={'KgcForm_models_LoginForm[identity]':'15210749058' ,'KgcForm_models_LoginForm[password]':'13630355136asd'},
callback=self.after_login
)
#不成功回的
def after_login(self,response):
#找到报错时显示错误信息的标签
txt=response.css('div.errorMessage::text').extract_first()
if txt is None:
#txt=response.css('div.common-head.fix::text').extract_first()
#print(txt)
#登录成功后看所学的所有课程
#http://www.kgc.cn/my/jobOE.shtml这个页面是就业课的连接
yield response.follow("http://www.kgc.cn/my/jobOE.shtml",self.listke)
else:
print(txt)
def listke(self,response):
titles = response.css('a.courseTitle.f16.black::text').extract()
for i in titles:
print(i)