0
我想解析頁面(任何頁面動態解析器)。 code isJsoup解析HTML標籤頁
Elements title = doc.select("title");
Elements metades = doc.select("meta[name=description]");
正如你所看到的,我想提取標題標籤。
這是工作的罰款在大約每一個網站例如hinddroid.com 但它不能從google.com解析名稱和youtube.com 我認爲這是由於兩個標記之間沒有空格。 大多數大網站在html中都沒有空間來節省帶寬。 請建議我 - 我想從網站解析HTML。
全碼:
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
import java.util.regex.*;
import org.jsoup.Jsoup;
import org.jsoup.helper.Validate;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
public class post_link extends HttpServlet
{
@Override
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
try
{
//out.println("<link rel=\"stylesheet\" type=\"text/css\" href=\"style.css\" /><script src=\"http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.6.3.min.js\"></script><script src=\"jquery-social.js\"></script>");
String linktopro = "http://"+request.getParameter("link_topro");
//String linktopro = "http://hinddroid.com";
Document doc = Jsoup.connect(linktopro).userAgent("Mozilla/5.0 (Windows; U; WindowsNT 5.1; en-US; rv1.8.1.6) Gecko/20070725 Firefox/2.0.0.6").timeout(3000).get();
Elements png = doc.select("img[src]");
Elements title = doc.select("title:first-child");
//Elements title = doc.title();
Elements metades = doc.select("meta[name=description]");
Pattern p1 = Pattern.compile("http://.*|.com*?.(com)");
out.println("<script> var myCars=new Array(");
for(Element pngs : png)
{
Matcher m1 = p1.matcher(pngs.attr("src"));
boolean url = m1.matches();
String baseurl = "";
//out.println(url+"");
if(url)
{ baseurl = ""; }
else
{ baseurl = linktopro; }
out.println("\""+baseurl+""+pngs.attr("src")+"\",");
}
out.println("\"\"");
out.println(");</script>");
String outlink = "<div class=\"linkembox\">"+
"<div class=\"linkembox-img\">"+
"<img src=\"http://hinddroid.com/img/logo.gif\" width=\"150\" height=\"120\" />"+
"<br/><div id=\"linkimg-left\"><</div><div id=\"linkimg-right\">></div>"+
"</div>"+
"<div class=\"linkembox-text\">"+
"<div class=\"h\">"+title.html()+"</div><br/>"+
"<div class=\"h1\">"+metades.attr("content")+"</div>"+
"</div>"+
"</div>";
out.println(outlink);
out.print("<script> left(myCars); </script>");
}
catch(Exception ex)
{
out.print(ex);
}
finally
{
out.close();
}
}
}
Jsoup應該處理任何格式良好的文檔。它不應該失敗解析從谷歌和YouTube的標題。粘貼你的完整代碼,以便我可以幫助你。 – deadlock 2013-02-28 08:47:51
獲得頁面後,'doc.title()'應該可以正常工作來獲取頁面的標題。 – Shoshi 2013-02-28 08:55:16
親愛的死鎖請查看代碼 和shoshi我要試試你的解決方案 – 2013-02-28 09:23:03