㈠ 用java怎樣提取提取網頁部分html內容
Java提取網頁部分HTML內容的代碼如下:
首先,我們需要導入文件,這里以"/tmp/input.html"為例,代碼為:
File input = new File("/tmp/input.html");
接著,使用jsoup庫解析文件,代碼為:
Document doc = Jsoup.parse(input, "UTF-8", "IP");
如果只需要提取網頁的文本內容,可以調用:
doc.text() 方法。
不過,提取網頁部分HTML內容可能需要更復雜的操作,例如使用select()方法選擇特定標簽,或者使用getElementById()、getElementsByTagName()等方法來獲取特定元素。
另外,Jsoup支持多種CSS選擇器,可以幫助我們更精確地定位到我們想要的內容。
例如,要提取所有a標簽中的文本,可以使用:
Elements links = doc.select("a");
遍歷elements對象,就可以獲取每個a標簽中的文本。
此外,Jsoup還提供了其他功能,如處理HTML片段、驗證HTML結構等,可以滿足更多需求。
對於更復雜的HTML內容提取,可能還需要結合其他庫或技術,例如正則表達式、XPath等,但Jsoup已經提供了豐富的功能,可以滿足大部分需求。
使用Jsoup提取HTML內容時,需要注意解析過程中可能出現的異常,例如文件不存在或格式錯誤等問題。
通過以上方法,我們可以靈活地提取網頁中的特定內容,滿足不同場景下的需求。
此外,對於動態生成的網頁內容,可能還需要使用Selenium等工具進行自動化操作,才能獲取到最新的數據。
盡管如此,對於靜態網頁或簡單的動態網頁,使用Jsoup已經足夠。
總結來說,Java提取網頁部分HTML內容主要通過解析文件,選擇特定元素,獲取文本等方式實現。
希望以上信息對您有所幫助。
㈡ java得到請求來的頁面HTML
頁面:
<body>
<form action="/。。。。" id="form1">
<input type="hidden" name="indexUrl" id="indexUrl">
<a href="javascript:void(0);" onclick="goTo();">URL</a>
</form>
</body>
<script type="text/javascript">
function goTo(){
var form = document.getElementById("form1");
var url = location.href;
var indexUrl = document.getElementById("indexUrl");
indexUrl.value = url;
form.submit();
}
</script>
servlet的方法:
String indexUrl = request.getParameter("indexUrl");
URL url = new URL(indexUrl);
InputStream is = url.openConnection().getInputStream();
byte[] bs = new byte[9999];
int len = 0 ;
while((len = is.read(bs, 0, 9999))!=-1){
System.out.write(bs, 0, len);
}
is.close();
還可以用專門獲取網頁的JAR包,好像是jsoap?上面的代碼沒有考慮轉碼的問題。如果是中文可能出現亂碼,注意要統一編碼格式。
------------------------------------------------------
修改了一下servlet的doPost方法,解決編碼問題。我的頁面是utf-8編碼。
String indexUrl = request.getParameter("indexUrl");
URL url = new URL(indexUrl);
InputStream is = url.openStream();
// InputStream is = url.openConnection().getInputStream();
InputStreamReader isr = new InputStreamReader(is,"utf-8");
char[] cs = new char[9999];
while(isr.read(cs, 0, 9999)!=-1){
System.out.print(cs);
}
is.close();