• 1
  • 2
  • 3
  • 4
  • 5

高中生大学生毕业后必选职业路

做Java爬虫,有些感悟心得,分享给大家

再怎么慎重都不为过

免费咨询 >
相关IT课程
做Java爬虫,有些感悟心得,分享给大家
这些IT技术课程很火爆,你还在等什么?
怎么学好 学什么好 咋学快速
网络营销 以在线咨询为准 热招
HTML5定制班HTML5定制班热招 以在线咨询为准 热招
Python定制班Python定制班热招 以在线咨询为准 热招
软件测试就业班软件测试就业班热招 以在线咨询为准 热招
JAVA就业班JAVA就业班热招 以在线咨询为准 热招
UI设计定制班 以在线咨询为准 热招

全移动智能化教学设施

定义"高大上"

让你学习高薪技术专业轻松无忧快乐

  • Java开发工程师
  • PHP培训
  • web全栈工程师
  • 软件测试工程师
  • 人工智能培训
  • 云计算培训
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

做Java爬虫,有些感悟心得,分享给大家

你想不优秀,没门!

专业选择对了,努力才能不白费

大数据-做Java爬虫,有些感悟心得,分享给大家
UI培训-做Java爬虫,有些感悟心得,分享给大家
网络营销-做Java爬虫,有些感悟心得,分享给大家
直播带货-做Java爬虫,有些感悟心得,分享给大家
物联网-做Java爬虫,有些感悟心得,分享给大家

做Java爬虫,有些感悟心得,分享给大家


首先,看完这篇文章,不能保证你成为大神,但是却可以让你懂得什么是爬虫,如何使用爬虫,如何利用http协议,侵入别人的系统,当然只是一些简单的教程,拿到一些简单的数据。

先上代码,在一步一步讲解:

这是一个工具类,不用详细看,网上哪里都能找到发送http请求的工具类,少包自己导

packagecom.df.util;

importjava.io.BufferedReader;

importjava.io.IOException;

importjava.io.InputStreamReader;

importjava.io.OutputStreamWriter;

importjava.io.PrintWriter;

importjava.net.HttpURLConnection;

importjava.net.URL;

importjava.net.URLConnection;

importjava.util.List;

importjava.util.Map;

importorg.apache.log4j.Logger;

importorg.jsoup.Connection;

importorg.jsoup.Connection.Method;

importorg.jsoup.Connection.Response;

importorg.jsoup.Jsoup;

importcom.df.controller.DFContorller;

publicclassHttpPosts{

privatefinalstaticLoggerlogger=Logger.getLogger(DFContorller.class);

publicstaticStringsendPost(Stringurl,Stringparam){

PrintWriterout=null;

BufferedReaderin=null;

Stringresult="";

try{

URLrealUrl=newURL(url);

//打开和URL之间的连接

URLConnectionconn=realUrl.openConnection();

//设置通用的请求属性

conn.setRequestProperty("accept","*/*");

conn.setRequestProperty("connection","Keep-Alive");

conn.setRequestProperty("user-agent",

"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");

//发送POST请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);

//获取URLConnection对象对应的输出流

out=newPrintWriter(conn.getOutputStream());

//发送请求参数

out.print(param);

//flush输出流的缓冲

out.flush();

//定义BufferedReader输入流来读取URL的响应

in=newBufferedReader(

newInputStreamReader(conn.getInputStream(),"utf-8"));

Stringline;

while((line=in.readLine())!=null){

result+=line;

}

}catch(Exceptione){

logger.info("发送POST请求出现异常!"+e);

e.printStackTrace();

}

//使用finally块来关闭输出流、输入流

finally{

try{

if(out!=null){

out.close();

}

if(in!=null){

in.close();

}

}

catch(IOExceptionex){

ex.printStackTrace();

}

}

returnresult;

}

publicstaticStringsendGet(Stringurl,Stringparam){

Stringresult="";

BufferedReaderin=null;

try{

StringurlNameString=url+"?"+param;

URLrealUrl=newURL(urlNameString);

//打开和URL之间的连接

URLConnectionconnection=realUrl.openConnection();

//设置通用的请求属性

connection.setRequestProperty("accept","*/*");

connection.setRequestProperty("connection","Keep-Alive");

connection.setRequestProperty("user-agent",

"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");

connection.setRequestProperty("Cookie","PHPSESSID=27roc4d0ccd2cg4jbht80k8km2");

//建立实际的连接

connection.connect();

//获取所有响应头字段

Map<String,List<String>>map=connection.getHeaderFields();

//遍历所有的响应头字段

for(Stringkey:map.keySet()){

System.out.println(key+"--->"+map.get(key));

}

//定义BufferedReader输入流来读取URL的响应

in=newBufferedReader(newInputStreamReader(

connection.getInputStream(),"utf-8"));

Stringline;

while((line=in.readLine())!=null){

result+=line;

}

}catch(Exceptione){

System.out.println("发送GET请求出现异常!"+e);

e.printStackTrace();

}

//使用finally块来关闭输入流

finally{

try{

if(in!=null){

in.close();

}

}catch(Exceptione2){

e2.printStackTrace();

}

}

returnresult;

}

}

---------------------------------------分割线

下面进入主题:首先你要先进入,你要去爬取网站的登录页面,查看页面源码,找到登录请求发送的方法名;一般来所,小型网站会直接写在from表面action里面,很容易找得到,中型的网站就不会写的这么直接了,找起来要费些功夫,可能在js里面,也可能不在这个页面,推荐使用抓包工具登陆一次,看抓到的请求信息,大型的网站,本人爬取过的京东商城后台,用游览器自带的f12,抓不到登录的信息,一闪即逝,最后想了很多招才搞到京东的登录接口;实现爬去;拿到了登录接口地址后。上代码

Stringdata=HttpPosts.sendGet(登录地址(不带参数;String类型地址),参数(如:user_id=6853&export=112));(返回的登录状态,一般是json格式,他会高数你是否登录成功,有的是true,有的是1,视情况而定)选择get还是post,模仿登录页面的请求

然后再来一个请求获取cookie

Connectionconn=Jsoup.connect("登录后页面的地址");

conn.method(Method.GET);

conn.followRedirects(false);

Responseresponse=conn.execute();

System.out.println(response.cookies());

再讲cookie动态传入get或者post方法里面替换到写死的cookie;因为是测试所以写死了cookie,可以写成动态的;

之后再掉你要访问登录之后的页面,主页,或者是数据页面,里面一定要携带cookie,和http请求的基本参数信息,不然一定会被拦截的。

Stringdata=HttpPosts.sendGet(登录地址(不带参数;String类型地址),参数(如:user_id=6853&export=112));访问方法同上;这回给你返回的就是他们的页面了,如何你找到了对面的某个数据接口,那就可以直接访问他,返回的就直接是数据,不然你还要解析,他的页面,很麻烦的。解析页面一般用jsoup。

其实这个等于另类的入侵,不需要知道对方的接口文档,用程序利用http协议直接访问对方的服务器,

拿到你想要的东西。当然有验证码的情况下,是很难的。这是爬虫基础。只是一带而过,讲的有些片面,不到之处多多海涵。

以上就是IT培训网java编程培训机构小编介绍的“做Java爬虫,有些感悟心得,分享给大家”的内容,希望对大家有帮助,更多java最新资讯请继续关注IT培训网java编程培训机构官网,每天会有精彩内容分享与你。

全国1000多家名企招聘

500家企业人才定制培养需求

想不就业,太难!

IT培训就业之一 IT培训就业之二 IT培训就业之三
学员最关心的就业问题
想学员之所想,解学员之所惑
我怎么样选择
合适的IT课程?

我怎么样选择合适的IT课程?-做Java爬虫,有些感悟心得,分享给大家

学了IT课程后
能保证就业吗?

学了IT课程后能保证就业吗?-做Java爬虫,有些感悟心得,分享给大家

学了IT后可以进
哪些企业?

学了IT后可以进哪些企业?-做Java爬虫,有些感悟心得,分享给大家

0基础
学什么专业更好?

0基础学什么专业更好?-做Java爬虫,有些感悟心得,分享给大家

IT培训网课程的
优势有哪些?

IT培训网课程的优势有哪些?-做Java爬虫,有些感悟心得,分享给大家

IT课程学费多少钱?

IT课程费多少钱?-做Java爬虫,有些感悟心得,分享给大家

版权所有:IT培训网 备案信息:中国优质IT培训网

课程免费咨询热线:13783581536