Scrapy Cookie模拟登陆

以登陆wordpress为例,

如何获取Cookies,登陆之后开发者模式,找到请求的页面寻找Cookies,这里要注意需要把Cookie转换成python 字典(dict)形式。
传送门网址:Cookie信息转化为字典格式

        cookies  = {
"wordpress_sec_62da0086f543a3a2b2b9ca0c70aae035":"cchheenn%7C1576931392%7CbOcb6q9CXccQ1ipajxhhVu54AbmUmR2vnbXqoZ9R1Fd%7C320b527e6e0c37c0e495c53016eb01f28ff4db7b261e1d7007f02c9711e28cec",
    "wordpress_test_cookie":"WP+Cookie+check",
    "Hm_lvt_6adb2361f32aa1257d3414a5f434be80":"1576753871",
    "wordpress_logged_in_62da0086f543a3a2b2b9ca0c70aae035":"cchheenn%7C1576931392%7CbOcb6q9CXccQ1ipajxhhVu54AbmUmR2vnbXqoZ9R1Fd%7C72676d10a686cf34a01ec0c0c40ee7e489ce3341df3eb6bf37fbad0593dd0b5e",
    "wp-settings-time-1":"1576758617",
    "wp-settings-1":"mfold%3Do%26editor%3Dtinymce%26libraryContent%3Dbrowse%26hidetb%3D1%26post_dfw%3Doff%26urlbutton%3Dnone%26advImgDetails%3Dshow%26imgsize%3Dfull%26editor_expand%3Doff%26ed_size%3D868%26widgets_access%3Doff"
        }  # 构造表单数据
        yield scrapy.FormRequest("https://cchheenn.com/wp-login.php", cookies=cookies, callback=self.after_login)#回调

    def after_login(self,response):
        yield scrapy.Request("https://cchheenn.com/wp-admin/index.php",callback=self.index_home)#请求已登陆的首页,并回调

    def index_home(self,response):
        print(response.text)#打印页面内容,如果和成功登陆以后的一样,则登陆成功。

总结一下,使用Cookie登录的好处:

不需要知道登录url和表单字段以及其他参数,不需要了解登录的过程和细节。由于不是采用登录url, 用户名+密码的方式。配合工具使用,快速方便。

所谓用Cookie实现登录,就把过登录过的信息(包括用户名、密码以及其他的验证信息)打包一起发给服务器,告诉服务器我是登录验证过的。

不足之处,Cookie有过期时间,过一段时间再运行这个爬虫,需要重新获取一下Cookie的值。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注