java爬取网页数据
在工程中导入Jsoup.jar包
⑵ java怎么爬取指定网页的数据
把下面代码复制到文本文档中,然后将文本文档改成".html"形式这个是提取表格中的数据的方法,看看是你想要的不NewDocument
⑶ java写网络爬虫,如何爬取在同一个网页中,但是已经被隐藏的div(需要点击显示更多)
这种是用js实现的。所以后面的内容实际上是动态生成的,网络爬虫抓取的是静态页面。
至于解决办法,网上有几种:
一种是使用自动化测试工具去做,比如selenium,可以模拟点击等操作,但是这个其实和爬虫还是有很大区别的。
二是利用特定的类库在后端调用js,python的倒是有,但是java的我就不清楚了。
三是自己找到相关的页面的js代码,分析出来相关的请求url,直接调新的url就行了,但是一般的js都是加密压缩的,但是你可以试试。
⑷ java jsoup怎样爬取特定网页内的数据
方法/步骤
本次经验是通过导入外部Jar进行对网页数据进行抓取,以下是我工程的分布图。
本例子中是使用Jquery进行处理页面事件
页面展示
后台是在siteproxy.jsp中进行处理
5
最后将这其中需要的几个文件部署在此工程中去
⑸ java获取网页内容
转载:http://blog.csdn.net/yanjiaye520/article/details/8990233
package com.wsw.j2se.url;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
/**
* 通过网站域名URL获取该网站的源码
* @author Administrator
*
*/
public class HtmlRequest {
/** *//**
* @param args
* @throws MalformedURLException
*/
public static void main(String[] args) throws Exception {
URL url = new URL("http://www.ifeng.com");
String urlsource = getURLSource(url);
System.out.println(urlsource);
}
/** *//**
* 通过网站域名URL获取该网站的源码
* @param url
* @return String
* @throws Exception
*/
public static String getURLSource(URL url) throws Exception {
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5 * 1000);
InputStream inStream = conn.getInputStream(); //通过输入流获取html二进制数据
byte[] data = readInputStream(inStream); //把二进制数据转化为byte字节数据
String htmlSource = new String(data);
return htmlSource;
}
/** *//**
* 把二进制流转化为byte字节数组
* @param instream
* @return byte[]
* @throws Exception
*/
public static byte[] readInputStream(InputStream instream) throws Exception {
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1204];
int len = 0;
while ((len = instream.read(buffer)) != -1){
outStream.write(buffer,0,len);
}
instream.close();
return outStream.toByteArray();
}
}
⑹ 如何用JAVA获取html网页中我所需要的数据
使用jsoup可以很方便的读取、解析网页内容。
⑺ 如何 用Java语言获得网页数据
你这个是不是A系统想了解B系统的页面信息?
如果是这样存在一个问题比较难解决,就是数据源问题,你A系统并不知道B系统的数据。
如果要获取招聘信息的公司名称,有几个思路
1、A系统做一个iframe,这个iframe里面嵌入你要访问的URL,然后你通过JS,获取这个iframe标签里面的所有内容,这样数据源就解决了
2、你可以做一个浏览器插件,这个插件的功能就是获取当前访问页面的所有字符数据,获取到数据后将数据发送到A系统
3、对网页进行截图,然后通过OCR软件获取图片中的文字,并将文字保存成文本,A系统读取这个文本信息,数据源问题也可以解决
以上上个只是我临时想到的,可能还可以运用JAVA的全文检索框架试试看,因为没有用过这个框架所以不知道是否能够实现
获取到数据源后,接下来就是业务处理了,业务处理就看具体业务进行处理就行了,技术方面就是一个文字处理的功能,技术好实现,业务比较复杂
⑻ java后台获取网页ajax数据和返回数据简单源码
1新建一个servlet xml中相应配置(一般自动)
2创建service方法
3接受参数,做操作,返回数据
比如页面发送ajax请求到SomeServlet
$.post("SomeServlet的请求路径",{param:"param"},function(data){
//data为返回的数据以json形式
alert(data.id+""+data.name+""+data.age);
},"json");
Servlet
publicvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)
throwsServletException,IOException{
request.setCharacterEncoding("utf-8");
response.setContentType("text/html;charset=utf-8");
PrintWriterout=response.getWriter();
Stringparam=request.getParameter("param");//获取参数
//你的操作
//返回数据
Stringjson="{"id":1,"name":"张三","age":18}";
out.print(json);
}
⑼ Java请求一个URL。获取网站返回的数据。
publicstaticStringSendGET(Stringurl,Stringparam){
Stringresult="";//访问返回结果
BufferedReaderread=null;//读取访问结果
try{
//创建url
URLrealurl=newURL(url+"?"+param);
//打开连接
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.connect();
//获取所有响应头字段
Map<String,List<String>>map=connection.getHeaderFields();
//遍历所有的响应头字段,获取到cookies等
for(Stringkey:map.keySet()){
System.out.println(key+"--->"+map.get(key));
}
//定义BufferedReader输入流来读取URL的响应
read=newBufferedReader(newInputStreamReader(
connection.getInputStream(),"UTF-8"));
Stringline;//循环读取
while((line=read.readLine())!=null){
result+=line;
}
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(read!=null){//关闭流
try{
read.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
returnresult;
}