真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

使用Android爬蟲怎么模擬一個登錄功能

這篇文章將為大家詳細(xì)講解有關(guān)使用Android爬蟲怎么模擬一個登錄功能,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

員工經(jīng)過長期磨合與沉淀,具備了協(xié)作精神,得以通過團(tuán)隊的力量開發(fā)出優(yōu)質(zhì)的產(chǎn)品。創(chuàng)新互聯(lián)建站堅持“專注、創(chuàng)新、易用”的產(chǎn)品理念,因為“專注所以專業(yè)、創(chuàng)新互聯(lián)網(wǎng)站所以易用所以簡單”。公司專注于為企業(yè)提供網(wǎng)站制作、成都網(wǎng)站制作、微信公眾號開發(fā)、電商網(wǎng)站開發(fā),小程序設(shè)計,軟件定制網(wǎng)站設(shè)計等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。

實例代碼:

package com.yasin;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;


import org.junit.Test;

import com.gargoylesoftware.htmlunit.BrowserVersion;
import com.gargoylesoftware.htmlunit.WebClient;
import com.gargoylesoftware.htmlunit.html.HtmlForm;
import com.gargoylesoftware.htmlunit.html.HtmlInput;
import com.gargoylesoftware.htmlunit.html.HtmlPage;
import com.gargoylesoftware.htmlunit.html.HtmlPasswordInput;
import com.gargoylesoftware.htmlunit.html.HtmlSubmitInput;
import com.gargoylesoftware.htmlunit.html.HtmlTextInput;

public class AutoLogin {

  String url = "http://172.16.10.3/";

  @Test
  public void run(){

    try{
      WebClient webClient = new WebClient(BrowserVersion.CHROME);
      //htmlunit 對css和javascript的支持不好,所以請關(guān)閉之
      webClient.getOptions().setJavaScriptEnabled(false);
      webClient.getOptions().setCssEnabled(false);
      HtmlPage page = (HtmlPage)webClient.getPage(url);

      List forms = page.getForms();
      HtmlForm form = forms.get(0);

      HtmlTextInput name = form.getInputByName("DDDDD");
      name.setValueAttribute("/*填寫你的賬號*/");
      HtmlPasswordInput pass = form.getInputByName("upass");
      pass.setValueAttribute("/*你的密碼*/");
      HtmlSubmitInput ok = form.getInputByName("0MKKey");
      System.out.println(pass.toString());
      ok.click();
    }catch(Exception e){
      System.out.println(e.toString());
    }

  }
}

于是接著調(diào)研,發(fā)現(xiàn)利用jsoup可以在android運行起來,不過這個庫能抓取網(wǎng)頁中的內(nèi)容,也能進(jìn)行賦值操作,但不支持模擬點擊事件,網(wǎng)上有好多例子,是利用第一次訪問獲取cookie,然后把賬號密碼再給Post到服務(wù)器,完成模擬登陸??梢晕覀兊男>W(wǎng)竟然沒有使用cookie,于是我只能抓包看看post的data有什么,然后把data直接通過post發(fā)送,不過不知道我們校網(wǎng)密碼的加密的方式,所以填寫密碼需要先去抓包,抓到自己賬號的密文,然后放到data中直接發(fā)送。成功了!

核心代碼:

public void login() throws IOException{
    Map datas = new HashMap();

    Connection con = Jsoup.connect("http://172.16.10.3/");
    con.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");//配置模擬瀏覽器
    Response rs= con.execute();//獲取響應(yīng)
    Document doc = Jsoup.parse(rs.body());

    datas.put("DDDDD", "/*自己的賬號*/");
    datas.put("upass", "/*自己密碼的密文,需抓包獲取*/");
    datas.put("R1", "0");
    datas.put("R2", "1");
    datas.put("0MMKey", "123456");
    System.out.println(datas.toString());
    Connection con2=Jsoup.connect("http://172.16.10.3/");
    con2.header("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0");
     //設(shè)置cookie和post上面的map數(shù)據(jù).cookies(rs.cookies())
    Response login=con2.ignoreContentType(true).method(Method.POST).data(datas).execute();

    Message msg = new Message();
    msg.what = 1;
    mHandler.sendMessage(msg);


  }

抓包方式:

使用Android爬蟲怎么模擬一個登錄功能

點擊登錄后快速停止監(jiān)聽,獲取form data,然后把data中的值填上就好了。

總的來說,如果只是單純抓取網(wǎng)頁內(nèi)容android這一塊利用jsoup還是能實現(xiàn)的,但不支持按鈕的點擊操作;Htmlunit API更好用,也能模擬點擊事件,不過javax android并不支持,但服務(wù)器還是可以用來抓取數(shù)據(jù)的。

關(guān)于使用Android爬蟲怎么模擬一個登錄功能就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


本文標(biāo)題:使用Android爬蟲怎么模擬一個登錄功能
標(biāo)題網(wǎng)址:http://weahome.cn/article/pjseec.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部