导航:首页 > 编程语言 > java模拟打开网页

java模拟打开网页

发布时间:2024-06-13 14:26:31

① 如何用java模拟网页登入提交

我不得不使用好几个系统,都是B/S结构的,每次登录都需要输入用户名和密码,觉得非常麻烦,考虑到其他同事也会有这样的需求,不妨就写个自动登录的程序吧。之前,也考虑过使用单点登录,几经尝试之后还是放弃了。

我习惯使用Java,本能地开始寻找Java的解决方法,在Google中输入“Java自动登录”、“Java网页模拟登录”、“Java Post 登录”,结果倒是不少,内容也差不多,我尝试很多次终究也没有达到我预期的目标。后来,我都不知道这些代码应该在jsp页面中执行还是在c/s结构的程序中执行。但这些代码确实管用。

我们先分析一下代码,
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.net.*" %>

String surl = "http://192.168.0.1:8888/oa/login.jsp";
URL url = new URL(surl);
URLConnection conn = url.openConnection();
conn.setDoOutput(true);
OutputStreamWriter out=new OutputStreamWriter(conn.getOutputStream());
String str = "username=yourname&password=123456";
out.write(str);
out.flush();
out.close();
到这里,如果在C/S结构中,且参数正确,程序能够成功登录到这个oa系统,要看到结果,你可以通过下面的代码将系统服务器返回的结果System.out.println()出来。

String sling = "";
String scontent = "";
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
while ((sling = in.readLine()) != null)
scontent += in + "\r\n";
System.out.println(scontent);

在C/S结构下,可以到得到控制台输出了返回值,从返回内容里可以看出程序已经成功登录,但要是把这个网址浏览器打开,还是得重新登录,问题没有得到根本解决。如果只是恶意注册,到这里应该就达到目的了。

看样子C/S结构下不容易实现网页程序自动登录,除非你在C/S程序中内嵌一个浏览器,直接在这个浏览器中自动访问系统,应该没有别的方法,主要问题在于我们没有办法共享Session。

为了便于共享Session,我们只能在浏览器中实现网页自动登录,通过上面的代码在jsp页面中测试,达不到预期目标。

网页自动登录,就是希望程序自动填充用户名和密码,然后以Post方式提交给登录页面的Form所指向的action页面或方法。我将系统的登录页面的源代码保存成一个网页,然后在username和password文本框中设置默认值,然后通过这网页登录系统,测试后,发现可行。接下来,你可能已经想到了解决方法。

我们可以通过url.openConnection()建立连接,将返回的scontent打印出来,然后接着打印以下代码:
out.println("<script type="text/javascript">\r\n");
out.println("document.getElementsByName("username")[0].value=yourname;\r\n");
out.println("document.getElementsByName("password")[0].value=123456;\r\n");
out.println("document.forms[0].submit();\r\n");
out.println("</script>\r\n");
原理很简单,通过login.jsp将登录页面的全部源代码写在当前页面,然后使用javascript脚本将用户名和密码的值填充上,最后提交表单。这样中,终于实现了自动登录的目标。现在我通过一个特殊的网址,例如http://192.168.0.1/login.jsp?url=,就可以自动访问这个oa了。
你可能注意到参数url,他的值是经过加密的,内容是用户名和密码。当然,你也可以加上有效期,即在有效期内这个链接才是有效的,才可以实现自动登录。

② 怎么用Java爬虫模拟登陆山大教务系统获取自

代码:Stringurl="/admin/main/flrpro.do";try{WebClientwebClient=newWebClient(BrowserVersion.FIREFOX_10);//设置webClient的相关参数webClient.getOptions().setJavaScriptEnabled(true);webClient.getOptions().setCssEnabled(false);webClient.setAjaxController(());//webClient.getOptions().setTimeout(50000);webClient.getOptions().(false);//模拟浏览器打开一个目标网址HtmlPagerootPage=webClient.getPage(url);System.out.println("为了获取js执行的数据线程开始沉睡等待");Thread.sleep(3000);//主要是这个线程的等待因为js加载也是需要时间的System.out.println("线程结束沉睡");Stringhtml=rootPage.asText();System.out.println(html);}catch(Exceptione){}

③ java程序模拟网页点击某个按钮

如果要登录的话直接post数据就行,具体可以网络 java模拟登录。

④ 急急急,java模拟用户行为,字文本输入内容后,点击提交,获取最终显示的页面,webdriver,

package main;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.ie.InternetExplorerDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;

public class Test {

public static void main(String[] args){
//创建一个WebDriver实例
System.setProperty("webdriver.ie.driver", "Driver\\IEDriverServer.exe");
WebDriver driver= new InternetExplorerDriver();
//访问网络
driver.get("www..com");
//另一种方式
driver.navigate().to("www.google.com");
//找到文本框
WebElement element = driver.findElement(By.name("q"));
//搜索关键字
element.sendKeys("selenium");
//提交表单 webDriver会自动从表单中查找提交按钮并提交
element.submit();

//检查页面title
System.out.println("页面Title:"+driver.getTitle());
//设置等待时间为10秒
(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {

@Override
public Boolean apply(WebDriver d) {
// TODO Auto-generated method stub
return d.getTitle().toLowerCase().startsWith("selenium");
}

});

// 显示查询结果title
System.out.println("Page title is: " + driver.getTitle());
//关闭浏览器
driver.quit();

}
}

⑤ 怎么用java模拟浏览器提交html页面的表单数据

HttpClient模拟请求如下
HttpClienthttpclient=newDefaultHttpClient();//打开浏览器
HttpPosthttpPost=newHttpPost("www.xxx.xxx");//输入网址

List<NameValuePair>nvps=newArrayList<NameValuePair>();
nvps.add(newBasicNameValuePair("userName","123"));
nvps.add(newBasicNameValuePair("password","123"));//封装表单
httpPost.setEntity(newUrlEncodedFormEntity(nvps,"utf-8"));//将参数传入post方法中
HttpResponseresponse=httpclient.execute(httpPost);//执行post
HttpEntityentity=response.getEntity();//获取响应数据
Stringresult=EntityUtils.toString(entity);//将响应数据转成字符串
需要导入jar包
纯手工打字,请采纳哈


⑥ java程序可以模拟指定浏览器发送请求吗,怎么做

其实模拟指定浏览器
就是模拟指定的User-agent
当你用httpclient发送请求时
设置header的user-agent为你浏览器的就可以了
希望能帮助到你

⑦ java 如何模拟浏览器调用rest api接口

packagecom.demo;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;

importjavax.xml.bind.DatatypeConverter;

importorg.apache.http.HttpResponse;
importorg.apache.http.client.methods.HttpGet;
importorg.apache.http.impl.client.DefaultHttpClient;
publicclassrestTest{
publicstaticvoidmain(String[]args){
try{
DefaultHttpClientClient=newDefaultHttpClient();

HttpGethttpGet=newHttpGet("你的地址");
Stringencoding=DatatypeConverter.printBase64Binary("admin:admin".getBytes("UTF-8"));

httpGet.setHeader("Authorization","Basic"+encoding);

HttpResponseresponse=Client.execute(httpGet);

System.out.println("response="+response);

BufferedReaderbreader=newBufferedReader(newInputStreamReader(response.getEntity().getContent()));
StringBuilderresponseString=newStringBuilder();
Stringline="";
while((line=breader.readLine())!=null){
responseString.append(line);
}
breader.close();
StringrepsonseStr=responseString.toString();

System.out.println("repsonseStr="+repsonseStr);

}catch(IOExceptione){
e.printStackTrace();
}

}
}

⑧ Java怎么模拟登录亚马逊中国网站

Connection.Response res = Jsoup.connect(“登陆地址”).data("username", "你的用户名", "password", "你的密码").timeout(3000).method(Method.POST).execute();
Document doc = res.parse();
doc是拿到的网页后台的代码,再正则表达式匹配或者jsoup提取,分析得到cookie,即可模拟登陆

⑨ Java怎么模拟登录亚马逊中国网站

Connection.Responseres=Jsoup.connect(“登陆地址”).data("username","你的用户名","password","你的密码").timeout(3000).method(Method.POST).execute();Documentdoc=res.parse();doc是拿到的网页后台的代码,再正则表达式匹配或者jsoup提取,分析得到cookie,即可模拟登陆

阅读全文

与java模拟打开网页相关的资料

热点内容
云办公的原理是把传统文件放哪里 浏览:113
不属于群防群治队伍数据项有哪些 浏览:404
java树向上找 浏览:241
数据库查询票价 浏览:503
word黑色下划线怎么去掉 浏览:879
学习编程怎么学比较好 浏览:351
有什么好看的地图网站 浏览:593
oppo如何设置app黑名单 浏览:71
移动数据用了多少在哪里显示 浏览:549
excel表改变文件名颜色的方法 浏览:966
linuxshell二进制文件 浏览:36
什么是网络道德问题产生的 浏览:836
c清除文件夹 浏览:407
租房贷款用什么app 浏览:59
虚拟机oracle安装教程 浏览:745
太原编程班哪里有 浏览:544
压缩文件怎么找 浏览:586
wwwjshousecomcn 浏览:648
U盘文件路径在哪 浏览:502
不记得路由器密码怎么办 浏览:118

友情链接