• <th id="bb20k"></th>
    1. <th id="bb20k"></th>
      1. <th id="bb20k"></th>
        <progress id="bb20k"></progress>

        您的位置:新聞資訊 >文章內容
        一個scrapy模擬登錄的方法
        來源:互聯網 作者:admin 時間:2019-01-22 17:40:26

            我們在使用爬蟲進行信息的獲取時,容易遇到網站的反爬蟲機制,比如很多網站都需要先登陸,才能獲取到信息的,這該怎么辦呢?我們上哪里去找那么賬號使用?一直不斷的登陸賬戶,太麻煩了,還容易被限制住,或者出現驗證碼驗證的問題。下面我們介紹一個好用方法,即用scrapy模擬登錄。


            一、快速登錄方法


            我們在這里做了一個簡單的介紹,我們都知道scrapy的基本請求流程是start_request方法遍歷start_urls列表,然后make_requests_from_url方法,里面執行Request方法,請求start_urls里面的地址,但是這里我們用的不再是GET方法,而用的是POST方法,也就常說的登錄。


            1、首先我們改寫start_reqeusts方法,直接GET登錄頁面的HTML信息(有些人說你不是POST登錄么,干嘛還GET,別著急,你得先GET到登錄頁面的登錄信息,才知道登錄的賬戶、密碼等怎么提交,往哪里提交)


            2、start_request方法GET到數據后,用callback參數,執行拿到response后要接下來執行哪個方法,然后在login方法里面寫入登錄用戶名和密碼(還是老樣子,一定要用dict),然后只用Request子類scrapy.FormRequest這個方法提交數據,這我一個的是FormRequest.from_response方m_法。


            有些人會問,這個from__response的基本使用是條用是需要傳入一個response對象作為第一個參數,這個方法會從頁面中form表單中,幫助用戶創建FormRequest對象,最最最最重要的是它會幫你把隱藏的input標簽中的信息自動跳入表達,使用這個中方法,我們直接寫用戶名和密碼即可,我們在最后面再介紹傳統方法。


            3、parse_login方法是提交完表單后callback回調函數指定要執行的方法,為了驗證是否成功。這里我們直接在response中搜索Welcome Liu這個字眼就證明登錄成功。這個好理解,重點是yield  from super().start_resquests(),這個代表著如果一旦登錄成功后,就直接帶著登錄成功后Cookie值,方法start_urls里面的地址。這樣的話登錄成功后的response可以直接在parse里面寫。


        一個scrapy模擬登錄的方法


            有的同學可能問了,login方法里面不是應該寫reture 么,其實上面的寫法跟下面的這種寫法是一樣效果,如果再有個CSRF的話,也可以直接在login里面寫拿到CSRF信息,寫入到formdata里面跟用戶名和密碼一起提交。


            1 return [FormRequest.from_response(response,formdata=formdata,callback=self.parse_login)]


            登錄成功


        一個scrapy模擬登錄的方法


            二、傳統登錄方法


            1、首先要明確一件事情,一般情況下需要登錄的網站,不只需要登錄用戶和密碼,接下來我們聊聊上面說的傳統登錄模式。用戶在登錄的時候并不是只需要登錄賬戶信息,除了常見直觀的驗證碼和CSRF信息外,也有可能需要提交其它信息,我們必須把它們都提取到一起提交給服務器。


        一個scrapy模擬登錄的方法


            2、我們在form表單下面找到了一個display:none的div標簽,里面的input標簽的value值正好是我們要提交的數據,那我們就提取到他。


        一個scrapy模擬登錄的方法


            上文介紹了python爬蟲之scrapy模擬登錄,僅供參考。


        相關文章內容簡介
        解鎖高速不限量IP代理
        在線咨詢
        微信公眾號

        微信公眾號

        回到頂部
        国产欧美 一区,国产一本大道香蕉AV,国产亚洲卡通另类图片,国产高清AV在线