• Scrapy 模拟登陆


    Scrapy 模拟登陆

      1. 重写  爬虫中的start_requests 方法,直接携带cookies 进行登录

    注意的是在scrapy 中,cookies 不能放在headers 中,而需要把cookies作为一个独立的参数。因为在scrapy配置文件中单单独定义了一个cookies配置,读取cookies

    会直接从该配中进行cookies的获取。

      

    import scrapy
    
    class RenrenSpider(scrapy.Spider):
        name = 'renren'
        # allowed_domains = ['renren.com']
        start_urls = ['http://www.renren.com/467372239/profile']
    
    
        #重写start_requests,携带cookie登录
        def start_requests(self):
            # 直接携带登录后的cookies,用程序进行模拟登陆,此cookies 是手动从登录后的用户页面获取的cookies值。
            cookies = "anonymid=jt79zqv32wojoo; _r01_=1; ln_uact=1970664163@qq.com; ln_hurl=http://hdn.xnimg.cn/photos/hdn521/20120626/2140/h_main_0eaI_4eba0000010a1375.jpg; jebe_key=f32e6ca1-2cf0-4c86-9704-f044e43596c6%7C6c2f984601684a4271fb8c935cca39fb%7C1552485889426%7C1%7C1552485886593; _de=3C53B1DB040C239CEA46451CE0EBFBB16DEBB8C2103DE356; depovince=GUZ; jebecookies=383e5b17-6a15-4f29-87e4-8bc34d3f7d5c|||||; JSESSIONID=abcFlwgP7q7zDbiPlx4Mw; ick_login=b8ee1ebc-9b38-4b55-85e2-278bdc40f14a; p=c4d2de67ce9245d603bc0ee23389a23f9; first_login_flag=1; t=1130c7f349026f1788028140af80c58d9; societyguester=1130c7f349026f1788028140af80c58d9; id=467372239; xnsid=479ffbb4; ver=7.0; loginfrom=null; wp_fold=0; jebe_key=f32e6ca1-2cf0-4c86-9704-f044e43596c6%7C6c2f984601684a4271fb8c935cca39fb%7C1552485889426%7C1%7C1553576509085"
           # 使用字典推导式进行 转化成字典形式的cookies
            cookies = {i.split('=')[0]:i.split('=')[1] for i  in cookies.split(';')}
    
            yield scrapy.Request(
    
            self.start_urls[0]
            , dont_filter=True,
                cookies=cookies
            )
    
        def parse(self, response):
            import re
    
            print(re.findall('邓纪云',response.body.decode()))  # 找是否含有该名字信息,如果有的话就说明模拟登陆成功!

     在配置文件中注册:可以观察 cookies 在scrapy 发送请求的传递过程。

    COOKIES_DEBUG=True

     2. scrapy 模拟登陆之发送post的请求

    案例:登录GitHub 

     

    3. scrapy 通过scrapy.Form_request.from_response() 方法进行模拟登陆。

    前提是 form表单中有action地址。登录页面中:

      

  • 相关阅读:
    博客是一种心情
    双显示器和双鼠标
    C++ Primer Plus 第六版 代码笔记
    Bug,昂首走进2005
    让万能五笔2004免费版改首页的功能见鬼去吧。
    Gmail提供POP3和SMTP已经老长时间了
    快过年回家了,发点实用的东西给大家
    关于博客园Post的时候排版的一点小建议
    在.Net下进行MicroStation(GG)的开发(一)
    验证域的另一方法
  • 原文地址:https://www.cnblogs.com/knighterrant/p/10599770.html
Copyright © 2020-2023  润新知