/**
* 入口
* @param args
*/
public static void main(String[] args) {
System.out.println("输出什么?");
Login login = new Login();
login.getPersonInfo();
}
// 返会一个list对象
public List<String> getPersonInfo() {// 返回一个list对象
List<String> list = new ArrayList<String>();
try {
// 得到session ,进行模拟登陆,(如果有验证码,我就不知道了)。--博客园老牛大讲堂
Connection.Response res = Jsoup.connect("http://www.51job.com")
.data(
"loginname", "15217727459"
, "password", "15217727459."
)// 进行模拟登陆
.method(Connection.Method.POST).timeout(10000).execute();// 设置请求时间和登陆用的用户名,密码。
// Document doc = res.parse();
// 根据session进行爬虫
// 注释:不是所有网站他们都需要cook,也不是所有的网站cook都是iPlanetDirectoryPro。
// 不同网站网址的cookie不一样。而且每次访问都不一样,所以不要想着把session保存起来。
String guid = res.cookie("guid");
String _ujz = res.cookie("_ujz");
System.out.println("guid === " + guid);
System.out.println("_ujz === " + _ujz);
Document objectDoc = Jsoup
.connect("http://i.51job.com/resume/resume_preview.php?lang=c&resumeid=358968976&3658907287")// 里面的网址(就是你想要爬取的网页)
.cookie("guid", guid)
.cookie("_ujz", _ujz) // 异常提示行
.timeout(10000).post();// 设置请求的时间(这里设置的请求时间是10秒)
System.out.println("objectDoc === " + objectDoc);
Element htmlElement = objectDoc.getElementsByClass("name").get(0);// 得到class为name的第一个对象
Elements trElements = htmlElement.getElementsByTag("tr");// 得到tr标签的对象
System.out.println(trElements.size());// 输出多少个tr标签
for (int i = 1; i < trElements.size(); i++) {
Elements divElments = trElements.get(i).getElementsByAttributeValue("align", "left");// 根据class进行得到对象。
for (int j = 0; j < trElements.size(); j++) {
Element d = divElments.get(j);// 获取每一个对象
list.add(d.text());// 得到这个对象对应的值
}
}
} catch (IOException e) {
e.printStackTrace();
}
return list;
}