java模拟用户登录(排除没有验证码情况下,抓取网页信息)
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Demoppp {
public static List<String> getTagTitile_Wenzi(String content)
{
String regex ="title="+'"'+"[^=]+"+'"';
Pattern pa = Pattern.compile(regex);
Matcher ma = pa.matcher(content);
List<String> list = new ArrayList<String>();
while (ma.find()) {
list.add(ma.group());
}
return list;
}
public static List<String> getTagA_WenZi(String content)
{
String regex = "<a.*?</a>";
Pattern pa = Pattern.compile(regex);
Matcher ma = pa.matcher(content);
List<String> list = new ArrayList<String>();
while (ma.find()) {
list.add(ma.group());
}
return list;
}
public static void main(String[] args) throws IOException {
String surl="http://login.kaixin001.com/";
URL url=new URL(surl);
HttpURLConnection connectionss=(HttpURLConnection) url.openConnection();
connectionss.setDoOutput(true);
OutputStreamWriter out=new OutputStreamWriter(connectionss.getOutputStream(),"utf-8");
out.write("email=619617021@qq.com&password=4565892");//Post关键所在
out.flush();
out.close();
String cookieVal = connectionss.getHeaderField("Set-Cookie");
String url2="http://www.kaixin001.com/photo/albumlist.php";
URL url3=new URL(url2);
HttpURLConnection connectionsf=(HttpURLConnection) url3.openConnection();
if (cookieVal!=null) {
connectionsf.setRequestProperty("Cookie", cookieVal);
}
connectionsf.connect();
InputStream urlStream=connectionsf.getInputStream();
BufferedReader bk=new BufferedReader(new InputStreamReader(urlStream,"utf-8"));
String ss = null;
String total = "";
while ((ss=bk.readLine())!=null) {
total+=ss;
}
//System.out.println(total);
List<String> TVALUE=getTagTitile_Wenzi(total);
for (int i = 0; i < TVALUE.size(); i++) {
String aString=TVALUE.get(i).replaceAll("[\\w]+|="+"|"+'"',"").trim();
System.out.println(aString);
}
System.out.println("a标签的东西");
List<String> aTagString=getTagA_WenZi(total);
for (int i = 0; i < aTagString.size(); i++) {
String aString=aTagString.get(i).replaceAll("<[^>]+>","").trim();
System.out.println(aString);
}
}
}
java模拟用户登录(排除没有验证码情况下,抓取网页信息)的更多相关文章
- 模拟用户登录,内含验证码验证和request等操作
模拟用户登录,内含验证码验证和jsp等操作 1.案例需求: 1. 访问带有验证码的登录页面login.jsp 2. 用户输入用户名,密码以及验证码. * 如果用户名和密码输入有误,跳转登录页面,提示: ...
- HttpClient(二)-- 模拟浏览器抓取网页
一.设置请求头消息 User-Agent模拟浏览器 1.当使用第一节的代码 来 访问推酷的时候,会返回给我们如下信息: 网页内容:<!DOCTYPE html> <html> ...
- java.net.URL 模拟用户登录网页并维持session
java.net.URL 模拟用户登录网页并维持session 半成品,并非完全有用 import java.io.BufferedReader; import java.io.InputStream ...
- java.net.URL 模拟用户登录网页并维持session【转】
java.net.URL 模拟用户登录网页并维持session 半成品,并非完全有用 import java.io.BufferedReader; import java.io.InputStream ...
- Redis缓存Mysql模拟用户登录Java实现实例[www]
Redis缓存Mysql模拟用户登录Java实现实例 https://jingyan.baidu.com/article/09ea3ede1dd0f0c0aede3938.html redis+mys ...
- xpath技术解析xml以及案例模拟用户登录效果
问题:当使用dom4j查询比较深的层次结构的节点(标签,属性,文本),比较麻烦!!! xpath就在此情况下产生了--主要是用于快速获取所需的[节点对象]. 在dom4j中如何使用xPath技术 1) ...
- 运用String类实现一个模拟用户登录程序
package Test; import java.util.Scanner; // 模拟用户登录程序 // 思路: // 1.用两个String类分别接收用户名和密码 // 2.判断输入的用户名和密 ...
- jdbc封装模拟用户登录
dao层 接口 package com.qu.dao; public interface ILoginDAO { /** * 模拟用户登录 * 验证用户名 密码是否正确 * select * from ...
- python 初学习 模拟用户登录
#!/usr/bin/env python#coding:utf-8''' 2017年8月19日 模拟用户登录,userfile 文件保存字典 用户名,和密码 sorryname 文件保存字典 登录过 ...
随机推荐
- EmEditor处理大文本文件
前段时间新闻网由于用户不当操作.导致三年的报纸栏目内容全部清空.紧急情况下只能求助于SQL数据恢复.但备份的数据文件有500M左右. 首先用的文本编辑器是Notepad++,打开之后软件几乎完全卡死. ...
- centos7 关闭SELINUX 防火墙
关闭SELINUXvi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加 ...
- Hibernate常用配置文件详解
本文转载自:http://blog.csdn.net/csh624366188/article/details/7578939 初学hibernate的童鞋,刚开应该都有这种感觉,hibernate的 ...
- [mysql] mysql explain 使用
explain显示了mysql如何使用索引来处理select语句以及连接表.可以帮助选择更好的索引和写出更优化的查询语句. 先解析一条sql语句,看出现什么内容 EXPLAINSELECTs.uid, ...
- js 删除DropDownList的选项
function del_DropDownList_Option() { var ddlXZ= document.getElementById("name&quo ...
- IOS开发—数据库的使用
1.首先封装方法(建一个DataBase类封装) 2.实现DataBase类的方法 3.第一步先建立一个表 4.进行插入.删除.更新 插入的sql语句:@"insert into user ...
- ICSharpCode.SharpZipLib.dll,MyZip.dll,Ionic.Zip.dll 使用
MyZip.dll : 有BUG,会把子目录的文件解压到根目录.. ICSharpCode.SharpZipLib.dll: 把ICSharpCode.SharpZipLib.dll复制一份,重命名为 ...
- poj2352消防站
题目大意:有n个点的一棵树,每个点有两个值:w和c.现在要在其中若干点建立消防站,使得每个点到最近的消防站的距离不超过该点的c值,i点建立消防站的费用为w.求最小费用. 分析:本题显然是树型Dp.定义 ...
- Tomcat的startup.bat一闪而过问题的解决
问题描述:点击Tomcat的startup.bat,一闪而过. 问题分析: 1.Tomcat的startup.bat--->catalina.bat--->setclasspath.bat ...
- for语句的用法
#!/bin/bashfor i in 1 2 3 4 5 6do echo $idone 看文件 #!/bin/bashdir=$(ls /etc) for i in $dirdo echo $id ...