2016-09-01 13 views
0

私は黒板(カレッジの普及したコース管理システム)でページをカールしようとしています。このページでは、私の黒板アカウントへのログインが必要です。これは--data引数を使って行うことができます。私が知らないのは、ユーザー名とパスワードをcurlコマンドに渡すために使用する必要がある形式です。--dataを使ってBlackboardログインデータをcURLに渡すには?

答えて

0

ブラウザとしてfirefoxを使用できる場合は、ブラウザをcurlコマンドで作成することができます。

あなたはアクティブに(勝利のF12の)開発者向けツールを必要としてログインした後、あなたはPOSTラインプレスに、マウスの右ボタンを行くことができるとカールまたは類似の文言として保存を選択します。

ここ まあhttps://developer.mozilla.org/en-US/docs/Tools/Network_Monitor#Copy_as_cURL

いい答えは説明したように。

カール-v --data 'ユーザ名= abc124 &パスワード=パスワード'

たぶん、あなたはブランドの新しい本

"カールすべて" で https://www.gitbook.com/book/bagder/everything-curl/details

に見てみることができますHTTP Postの章を参照してください。またはHTTPスクリプトをcurlのホームページで見ることができますhttps://curl.haxx.se/docs/httpscripting.html#POST

+0

提案していただきありがとうございますが、私は自分の投稿でより具体的であったはずです。私は実際には、 "curl"コマンドを使用する必要があります。これは、私が書いているスクリプトの一部です。 –

+0

Ähmはい。 **上記の手順を**一度**作成すると、curlコマンドがコピーされ、スクリプトで使用されます。 curlコマンドには、ユーザー名とパスワードを柔軟にするための変数があります。多分私はあなたを誤解していますか? – Aleksandar

+0

明確にするために、私はスクリプト内のループ内でcurlコマンドを実行しています。ブラウザにログインしてデータを見ることはできますが、コマンドラインから厳密にアクセスする必要があることは承知しています。たとえば、私のユーザ名は「abc123」で、パスワードは「パスワード」です。 --data引数でこれらのパラメータをどのように使用しますか? –

0

私はSun Yat-Sen大学出身ですが、私は以下のスクリプトを使って学校の黒板にログインしています。それはRCurlパッケージを使用しました。あなたの詳細情報はgithubにあります。

library(V8) 
library(xml2) 
source('../R/MainFunction.R', encoding = 'UTF-8') 

url <-list(
    login_netid = "https://cas.sysu.edu.cn/cas/login?service=http%3A%2F%2Felearning.ne.sysu.edu.cn%2Fwebapps%2Fbb-caszsdx-bb_bb60%2Findex.jsp", 
    login_origin = "http://elearning.ne.sysu.edu.cn/webapps/login/", 
    referer = "http://elearning.ne.sysu.edu.cn/", 
    userinfo = "http://elearning.ne.sysu.edu.cn/webapps/portal/execute/topframe?tab_tab_group_id=_22_1&frameSize=LARGE", 
    main = "http://elearning.ne.sysu.edu.cn/webapps/portal/frameset.jsp" 
) 

## your can also directly login using cookies from firefox or other browser 
myHttpheader<- c(
    "User-Agent" = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:50.0) Gecko/20100101 Firefox/50.0", 
    "Accept" = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
    "Accept-Encoding"="gzip, deflate", 
    "Accept-Language" = "zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3", 
    "Connection"="keep-alive", 
    # "Cookie" = "JSESSIONID=DD1F84CD54D9831F8065A5026039A9CC.root; safedog-flow-item=AE46F7B8895D4633E2C87C0C0809A2EB; session_id=D15553506517F2E4E65E8CCD6F8F3DCA; JSESSIONID=36FBE15A073E5FACDD6DB6A61E6ADB45.root; xythosdrive=0", 
    DNT = 1, 
    "Host" = "elearning.ne.sysu.edu.cn", 
    # Referer = url$referer, 
    "Upgrade-Insecure-Requests" = 1) 
h <- basicHeaderGatherer() 
ch <- getCurlHandle()#带上百宝箱开始上路 
tmp <- curlSetOpt(curl = ch, 
      cainfo="pem/cacert.pem", 
      ssl.verifyhost=FALSE, 
      ssl.verifypeer = FALSE, 
      followlocation = TRUE, 
      verbose = TRUE, 
      cookiejar = "cookies_elearn.txt", cookiefile = "cookies_elearn.txt", 
      httpheader = myHttpheader) 
# login ------------------------------- 

tmp <- getURL(url$login_origin, curl = ch, headerfunction = h$update) 
one_time_token <- read_html(tmp) %>% xml_find_all("//input[@name='one_time_token']") %>% xml_attr("value") 

ct <- v8() 
ct$source("blackboard.js") 
pwd <- "****" 
user <- "****" 
encode_pws <- ct$call("kong", one_time_token, pwd) 

params <- list(
    action="login", 
    auth_type="", 
    encoded_pw=encode_pws[1], 
    encoded_pw_unicode=encode_pws[2], 
    login = "登陆",#iconv("登陆", "gb2312", "utf-8") %>% URLencode(), 
    new_loc =" ",#"%C2%A0", #" ", 
    one_time_token=one_time_token, 
    password = "", 
    "remote-user"="", 
    user_id = user) 
page <- postForm(url$login_origin, .params = params, curl = ch, 
       # origin="http://elearning.ne.sysu.edu.cn", refere="http://elearning.ne.sysu.edu.cn/", 
       style="post") %T>% print 

# p <- params2URL(url$login_origin, params) %>% getURL(curl = ch) 
# get data ---------------------------------------------------------------- 
p <- getURL(url$userinfo, curl = ch) 
grep("孔冬冬", p)#now you can find your name in p 
関連する問題