专栏首页吴伟祥java模拟登陆爬虫 原

java模拟登陆爬虫 原

1、添加依赖

	    <dependency>
			<groupId>org.jsoup</groupId>
			<artifactId>jsoup</artifactId>
			<version>1.9.2</version>
		</dependency>

2、示例代码

package com.neo;

import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

/**
 * The type Crawler test.
 *
 * @author weixiang.wu
 */
public class CrawlerTest {

	/**
	 * The entry point of application.
	 *
	 * @param args the input arguments
	 * @throws IOException the io exception
	 */
	public static void main(String[] args) throws IOException {
		//想要爬取的url
		String url = "https://www.?.com/at/api.html?url=admin_member_list";
		String username = "?";
		String password = "?";
		Map<String, String> sessionId = getSessionInfo(username, password);
		String todoSomething = httpPost(sessionId, url);
	}

	private static Map<String, String> getSessionInfo(String username, String password) throws IOException {
		//登录网站
		Connection.Response res = Jsoup.connect("https://www.?.com/at/login.html")
				.userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31")
				.data("username", username, "password", password)
				.method(Connection.Method.POST)
				.timeout(10000)
				.execute();
		//获取cookie
		Map<String, String> cookie = new HashMap<>();
		cookie.put("__cfduid", res.cookie("__cfduid"));
		cookie.put("PHPSESSID", res.cookie("PHPSESSID"));
		return cookie;
	}


	private static String httpPost(Map<String, String> sessionId, String url) throws IOException {
		//获取请求连接
		Connection con = Jsoup.connect(url).userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31")
				.cookies(sessionId).timeout(10000).ignoreContentType(true);
		//请求参数设置
		con.data("page", "1");
		con.data("pid", "0");
		con.data("level", "[1,2,3]");
		Document doc = con.post();
		System.out.println(doc);
		return doc.toString();
	}
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 按层级/条件解析Json,获取相应的key或value中的相关数据

    wuweixiang
  • java解析任意层的json数据(递归解析) 原

    wuweixiang
  • stellar 原

    Actions that change things in Stellar, like sending payments, changing your acco...

    wuweixiang
  • java反射,代码优化

    比如getAnswerA getAnswerB,这怎么动态调用。反射这个时候就用到了。

    陈灬大灬海
  • Android开发实现查询远程服务器的工具类QueryUtils完整实例

    本文实例讲述了Android开发实现查询远程服务器的工具类QueryUtils。分享给大家供大家参考,具体如下:

    砸漏
  • Confluence 未授权 RCE (CVE-2019-3396) 漏洞分析

    看到官方发布了预警,于是开始了漏洞应急。漏洞描述中指出Confluence Server与Confluence Data Center中的Widget Conn...

    Seebug漏洞平台
  • 大数据算法设计模式(2) - 左外链接(leftOuterJoin) spark实现

    左外链接(leftOuterJoin) spark实现 package com.kangaroo.studio.algorithms.join; impor...

    用户1225216
  • 厉害了,关于String的10道经典面试题。

    1、String是基本数据类型吗? 2、String是可变的话? 3、怎么比较两个字符串的值一样,怎么比较两个字符串是否同一对象? 4、switch中可以使用S...

    Java技术栈
  • 关于SpringMVC中如何把查询数据全转成String类型

    上帝
  • Get the image file(s) some informations,Including the Make,Model,Date/Time,etc

    This is a blog about how to get the image file(s) some informations.Including th...

    Hongten

扫码关注云+社区

领取腾讯云代金券