首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >java模拟登陆爬虫 原

java模拟登陆爬虫 原

作者头像
wuweixiang
发布2018-09-13 16:19:52
发布2018-09-13 16:19:52
2K00
举报
文章被收录于专栏:吴伟祥吴伟祥
运行总次数:0

1、添加依赖

代码语言:javascript
代码运行次数:0
运行
复制
	    <dependency>
			<groupId>org.jsoup</groupId>
			<artifactId>jsoup</artifactId>
			<version>1.9.2</version>
		</dependency>

2、示例代码

代码语言:javascript
代码运行次数:0
运行
复制
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();
	}
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档