scrapy 的crawl模板模拟登陆

来源:互联网 发布:钢雨篷荷载计算软件 编辑:程序博客网 时间:2024/05/22 21:52
##替换原来的start_requests,callback为def start_requests(self):    return [Request("http://www.zhihu.com/#signin", meta = {'cookiejar' : 1}, callback = self.post_login)]def post_login(self, response):    print 'Preparing login'    #下面这句话用于抓取请求网页后返回网页中的_xsrf字段的文字, 用于成功提交表单    xsrf = Selector(response).xpath('//input[@name="_xsrf"]/@value').extract()[0]    print xsrf    #FormRequeset.from_response是Scrapy提供的一个函数, 用于post表单    #登陆成功后, 会调用after_login回调函数    return [FormRequest.from_response(response,   #"http://www.zhihu.com/login",                        meta = {'cookiejar' : response.meta['cookiejar']},                        headers = self.headers,                        formdata = {                        '_xsrf': xsrf,                        'email': '1527927373@qq.com',                        'password': '321324jia'                        },                        callback = self.after_login,                        dont_filter = True                        )]#make_requests_from_url会调用parse,就可以与CrawlSpider的parse进行衔接了def after_login(self, response) :    for url in self.start_urls :        yield self.make_requests_from_url(url)
阅读全文
0 0
原创粉丝点击