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;
}