1. 程式人生 > >python爬蟲登陸 帶Cookie token

python爬蟲登陸 帶Cookie token

用python寫爬蟲整的很方便,弄了個模擬登陸,登陸後帶上token和cooke請求頁面

就拿gitlab練下手了,這個還是有一丟丟麻煩的

一、登陸介面

獲取隱藏域中的token,構建表單的時候需要


獲取到這個_gitlab_session,登陸校驗時需要帶著這個資訊


準備好token和cookie,當然還需要一個能登陸使用者名稱和密碼

二、登陸驗證

登陸驗證就是構建表單,不知為何還要傳一個utf-8引數


按說應該可以登陸進去的,但是....登陸進去後頁面會重定向到一個介面。接著呢,只好看fiddle裡抓包的資訊

之前一直以為沒有登陸成功,其實已經登陸成功,但是請求需要登陸頁面,還是會跳轉到登陸介面。。

原來登陸成功後會獲取一個新的session,然後需要調整 Headers裡面的資訊

再用這個headers去請求需要登陸的頁面,發現都可以了

程式碼如下,寫得很隨意:

"""
    http://code.t-appagile.com/users/sign_in

    http://code.t-appagile.com/users/sign_in
"""
import requests
import json
import string
from bs4 import BeautifulSoup
login = "http://code.t-appagile.com/users/sign_in"
call = "http://code.t-appagile.com/users/auth/ldapmain/callback"

headers = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'en-US,en;q=0.9,zh-CN;q=0.8,zh;q=0.7',
    'Cache-Control': 'no-cache',
    # 'Content-Length':'183',

    'Content-Type': 'application/x-www-form-urlencoded',
    'Cookie': '',
    'Host': 'code.t-appagile.com',
    'Origin': 'http://code.t-appagile.com',
    'Proxy-Connection': 'keep-alive',

    'Referer': 'http://code.t-appagile.com/users/sign_in',
    'Upgrade-Insecure-Requests': '1',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.186 Safari/537.36',
}


def HttpPost(apiUrl, data):
    try:
        global headers
        r = requests.post(apiUrl,headers=headers, data=data)
        
        cook = r.request.headers["Cookie"].split('=')
        lowCook = headers["Cookie"].split('=')

        newCook=lowCook[0]+'='+lowCook[1]+'='+cook[2]
        headers["Cookie"] = newCook
        print("登陸成功:",newCook)
        return r
    except:
        return

def HttpGet(apiUrl):
    try:
        global headers
        r = requests.get(apiUrl)
        cook = ""
        for c in r.cookies:
            cook += c.name + "="+c.value + ";"

        headers["Cookie"] = cook
        print("登陸前的:",cook)
        
        return r.text
    except:
        return

def HttpGetLcmm(apiUrl):
    try:
        r = requests.get(apiUrl,headers=headers)
        return r.text
    except:
        return


res = HttpGet(login)
html = BeautifulSoup(res,"html.parser")

token = html.find_all(type="hidden")[1]["value"]

postData ={}
postData["utf8"] ="✓"
postData["authenticity_token"] =token
postData["username"] ="你的賬號"
postData["password"] ="你的密碼"


res = HttpPost(call,postData)

# print(res.status_code)
# print(res.text)
# print(html)

res = HttpGetLcmm("http://code.t-appagile.com/SI.Web/lcmm-web")
print('ok!')

發現,寫模擬登陸需要很耐心,對比真實的http請求headers裡面的資訊,再去構建模擬請求的

有時間再弄個有驗證碼的,應該也簡單,畢竟都有驗證碼識別的Api了

相關推薦

python爬蟲登陸 Cookie token

用python寫爬蟲整的很方便,弄了個模擬登陸,登陸後帶上token和cooke請求頁面就拿gitlab練下手了,這個還是有一丟丟麻煩的一、登陸介面獲取隱藏域中的token,構建表單的時候需要獲取到這個_gitlab_session,登陸校驗時需要帶著這個資訊準備好token

Python爬蟲參url的拼接

  如果連線直接這樣寫,看上去很直觀,不過引數替換不是很方便,而且看著不舒服 https://www.mysite.com/?sortField=%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD&

Python爬蟲-----什麼是Cookie

什麼是Cookie?(通常是加密的,SSL) 簡單來說,訪問每一個網際網路頁面,都是通過HTTP協議進行的,然而HTTP協議是一個無狀態協議,所謂的無狀態協議即無法維持會話之間的狀態。比如,在僅適用HTTP協議的話,登入一個網站的時候,假如登入成功了,但是當訪問該網站的其他

Python爬蟲scrapy框架Cookie池(微博Cookie池)的使用

下載程式碼Cookie池(這裡主要是微博登入,也可以自己配置置其他的站點網址) 下載安裝過後注意看網頁下面的相關基礎配置和操作!!!!!!!!!!!!! 自己的設定主要有下面幾步: 1、配置其他設定 2、設定使用的瀏覽器 3、設定模擬登陸

python爬蟲實現附件+html內容以及圖片的郵件傳送

# -*- coding: utf-8 -*- import sys reload(sys) sys.setdefaultencoding('utf8') import smtplib import email from email.mime.text import

python爬蟲你看上海的房價(再也不怕在買,租房上吃虧了)

例如:用Python爬取貝殼上,上海的在售房源,6萬多套房源是目前貝殼上正在掛牌出售的房源,覆蓋了上海各個區縣。我們對這6萬多套房源做一下分析,來真實地感受一下上海的房價。 標題思路如下: 我們首先獲取所有的區和版塊資料。 然後對於每一個版塊,爬取版塊內的所有房源資料。每一套房源的

python爬蟲 登陸豆瓣 爬豆瓣電影短評

       這個爬蟲的目的是爬取豆瓣電影短評和評分(從1星到5星),這些東西可以做情感分類。由於不登入的情況下只能看電影短評的前幾頁,所以要實現登陸豆瓣。       登陸豆瓣的部分是在網上看的別人的程式碼,忘了從哪看的了。# -*- coding: utf-8 -*- f

python爬蟲登陸問題

 根據騰訊課堂網頁登陸問題進行解說(需要安裝谷歌瀏覽器): 1、匯入庫 import requests from selenium import webdriver 2、根據騰訊課堂連結,進入頁面,獲取頁面中登陸的xpath,並進行點選操作 driver = webdriv

python 爬蟲:利用selenium抓取cookie進行模擬登陸

說明: selenium抓取cookie模擬登陸,理論上可以登入任何網站。以下兩段程式碼分別介紹抓取cookie,和攜帶cookie登入。 抓取cookie.json程式碼 import

模擬登陸CSDN -- Python爬蟲練習之正則表示式和cookie

  這周學習的主題是正則表示式和cookie,原本是計劃每天晚上11點下班到家,練上一兩個鍾就把這部分過了,結果這周各種事情和不再狀態,所以沒整完,直至今天才把相關問題過掉。其實這部分也挺不錯的,也並沒有想象中容易,所以好事多磨。這周練習的綜合習題就是模擬登陸C

最簡潔簡單的vue axios springboot2.0 cookie token jwt 跨域 cors cookietoken header 頭請求token 登陸login 採坑記錄

vue axios springboot2.0 cookie  token jwt 跨域 cors cookie存token  header 頭請求帶token 登陸login 採坑記錄  首先 後端 pom檔案 <dependency&g

簡談-Python爬蟲破解JS加密的Cookie

ref 我們 cep tro python 復雜 load comment get   通過Fiddler抓包比較,基本可以確定是JavaScript生成加密Cookie導致原來的請求返回521。 發現問題:    打開Fiddler軟件,用瀏覽器打開目標站點(http:/

python selenium-webdriver 通過cookie登陸(十一)

circle gin == items tail login lis code 技術 上節介紹了瀏覽器的常用方法,涉及到了cookie的使用,本節介紹一下如何利用cookie進行登陸系統,這裏使用到了request模塊,我們首先利用request模塊,請求登陸地址進行登陸,

什麽是Python網絡爬蟲你爬向頂峰

python網絡爬蟲首先我們來介紹一下什麽是Python網絡爬蟲,先大概了解一下關於Python網絡爬蟲的相關知識點。Python作為一門入門簡單,功能強大的,庫類完善的語言,身受廣大猿友們的喜歡。本身對Python也是非常有好感的,所以時不時的逛逛有關Python的網站啥的。通過在各大Python學習群和論

20170717_python爬蟲之requests+cookie模擬登陸

ssi alert 之前 lose net .html .net 裝載 onos 在成功登陸之前,失敗了十幾次。完全找不到是什麽原因導致被網站判斷cookie是無效的。 直到用了firefox的httpfox之後才發現cookie裏還有一個ASP.NET_SessionI

Python爬蟲模擬登錄驗證碼網站

請求 handle 簡單的 hand win ron secret apple cookielib 問題分析: 1、爬取網站時經常會遇到需要登錄的問題,這是就需要用到模擬登錄的相關方法。python提供了強大的url庫,想做到這個並不難。這裏以登錄學校教務系統為例,做一個簡

6.Python爬蟲入門六之Cookie的使用

expires cookielib spa result hat 即使 card rec 其他 大家好哈,上一節我們研究了一下爬蟲的異常處理問題,那麽接下來我們一起來看一下Cookie的使用。 為什麽要使用Cookie呢? Cookie,指某些網站為了辨別用戶身份、進行se

python爬蟲-使用cookie登錄

ons 內置 超時 robots 方式 connect 模擬 imageview 處理 前言: 什麽是cookie? Cookie,指某些網站為了辨別用戶身份、進行session跟蹤而儲存在用戶本地終端上的數據(通常經過加密)。 比如說有些網站需要登錄後才能訪問某個頁面,在

Python爬蟲實例(四)網站模擬登陸

opener 運行 webkit zh-cn head window targe Coding 破解 一、獲取一個有登錄信息的Cookie模擬登陸 下面以人人網為例,首先使用自己的賬號和密碼在瀏覽器登錄,然後通過抓包拿到cookie,再將cookie放到請求之中發送請求即可

python爬蟲+使用cookie登錄豆瓣

豆瓣 .get ont size 時裝 原創 www. text 檢查 2017-10-09 19:06:22 版權聲明:本文為博主原創文章,未經博主允許不得轉載。 前言: 先獲得cookie,然後自動登錄豆瓣和新浪微博 系統環境: 64位win10系統,同時裝pytho