request三种方式:
1,通过session模拟登录获取cookies
2,将cookies信息添加到header里
3,将cookies以字典形式添加到request请求的cookies字段里
scrapy三种方式:
1,scrapy.Request直接携带cookies
scrapy.Request(url, callback, cookies={})
2,scrapy.FormRequest(url, formdata={}, callback=)找到发送post请求的url地址,带上信息,发送请求
3,scrapy.FormRequest.from_response(response, formdata={}, callback)自动寻找表单中action的地址
模拟登陆的几个场景如:
cookie过期时间很长,或者过期前把所有数据拿到,或者配合其他程序,如使用selenium把登陆之后的cookie获取到保存到本地,scrapy发送请求之前先读取本地cookie
1 2 3 4 5 6 7 8 |
def start_request(self): cookies = {} yield scrapy.Request( self.start_urls[0], callback=self.parse, cookies=cookies ) def parse(self): |
可以在scrapy setting中添加COOKIES_DEBUG = True,查看过程。
未经允许不得转载:MR LYU » request和scrapy模拟cookies登录的方式