Jsoup提取指定table中所有td的內容
由於資料抓取的需要,將網頁下載完後所有的都是html原始碼,需要抓取某一資訊時,需要對html做特定的分析,然後按照class或者id進行抓取。如果不瞭解抓取頁面的html標籤時,所得到的資訊是非常的難看,也很難從其中發現有用的資訊。也是現在我開始做頁面挖掘最大的難點。
以下程式碼是結合前面對html頁面空格處理以及特定抓取和儲存的程式碼:
下載頁面程式碼:
</pre><pre class="java" name="code">package com.dazhihui; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; public class MyJsoup { public static boolean downloadPage(String url, File file){ try { Document doc = Jsoup.connect(url).data("jquery","java").userAgent("Mozilla").cookie("auth", "tiken").timeout(5000).get(); String pageHtml = doc.toString(); OutputStream out = new FileOutputStream(file); out.write(pageHtml.toString().getBytes()); out.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } return true; } }
處理空格程式碼:
package com.dazhihui; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; public class ReplaceAllFileString { //引數說明:oldFile為所需要替換的檔案,即為原檔案; newFile為替換後新的檔案 ;oldString為所需要替換的字串;newString為替換字串 public static boolean replaceAllFileString(File oldFile, File newFile, String oldString, String newString){ try { BufferedReader reader = new BufferedReader(new FileReader(oldFile)); BufferedWriter writer = new BufferedWriter(new FileWriter(newFile)); String teamString = null; while((teamString = reader.readLine()) != null){ String str = teamString.replaceAll(oldString, newString); writer.write(str); } reader.close(); writer.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); return false; } return true; } }
提取大智慧公司概況程式碼:
package com.dazhihui; import java.io.File; import java.io.IOException; import java.util.ArrayList; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; public class DazhihuiResolveCompanyProfile { public static ArrayList<String> resolvePageText(File file){ ArrayList<String> list=null; try { Document doc = Jsoup.parse(file, "GBK"); Elements elements = doc.getElementsByClass("table_style_e"); list = new ArrayList<String>(); //select("table#table_style_e"); for(Element element:elements){ if(element.text()!=null&& !"".equals(element.text())){ Elements es = element.select("tr"); for(Element tdelement:es){ Elements tdes = tdelement.select("td"); for(int i = 0; i < tdes.size(); i++){ list.add(tdes.get(i).text()); //System.out.println(tdes.get(i).text()); } } } } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return list; } }
主程式碼:
package com.dazhihui;
import java.io.File;
import java.util.ArrayList;
public class Dazhihui {
public static void main(String[] args) {
// TODO Auto-generated method stub
String url = "http://cj.gw.com.cn/news/stock/601288.shtml";
File file = new File("C:/myjsoup/dazhihui/dazhihui.txt");
File newFile = new File("C:/myjsoup/dazhihui/newdazhihui.txt");
boolean mark = MyJsoup.downloadPage(url, file);
System.out.println(mark);
boolean mark2 = ReplaceAllFileString.replaceAllFileString(file, newFile, " ", "");
System.out.println(mark2);
ArrayList<String> list =DazhihuiResolveCompanyProfile.resolvePageText(newFile);
for(int i = 0; i < list.size(); i++){
System.out.println(list.get(i));
}
}
}
相關推薦
Jsoup提取指定table中所有td的內容
由於資料抓取的需要,將網頁下載完後所有的都是html原始碼,需要抓取某一資訊時,需要對html做特定的分析,然後按照class或者id進行抓取。如果不瞭解抓取頁面的html標籤時,所得到的資訊是非常的難看,也很難從其中發現有用的資訊。也是現在我開始做頁面挖掘最大的難點。 以
HTML怎麼讓table中的td內容過長顯示為固定長度,多餘部分用省略號代替
HTML如何讓table中的td內容過長顯示為固定長度,多餘部分用省略號代替 這個問題呢,是由於我們公司測試的部門測出來的,雖然說測試的內容本身就是個BUG,不過這個也讓我學到了一個比較好的歸類於佈局的一個小技巧,就是將td標籤中過長的內容只顯示為這個td的width的長度,之後的便以省略號
javascript做的一個根據table中某個td的值為日期時的倒計時
pan doc 現在 參數 tin continue 現在時間 諸葛亮 style JavaScript代碼: <script> window.onload = window.onload = function () { getTdValue(
Jquery 獲取指定 table下 所有 type 'text' 的 input
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!  
Java——打印出指定目錄中所有的檔案 ,包括子資料夾中的所有檔案
import java.io.File; // 打印出指定目錄中所有的檔案 ,包括子資料夾中的所有檔案 //遍歷檔案下所有的檔案 public class FileDemo { public static void main(String[] args) { File f
Table中的td,th用了Colspan或者Rowspan之後,設定寬度無效的解決方法
最近用到td中的Colspan,後來設定寬度的時候發現怎麼搞都無法實現到自己想要的效果,最後就把table中的第一行設定為無colspan和rowspan屬性的,該是幾列就幾列,然後把每列寬度設好,用百分比哦,我這裡用
如何讓table中的td自動換行
需要兩步: 1.設定表格table的樣式為style="table-layout:fixed;" 2.然後設定td的樣式為style="word-wrap:break-word;" 比如: <table width="88%" class="table1 tc mt1
遞迴列印指定路徑下所有檔案內容到指定檔案裡
# -*- coding: utf-8 -*- """遞迴列印指定路徑下所有檔案 Usage: printDirectory <printFilePath> <saveFilePath> """ from docopt import docopt imp
使table中的td可編輯
//在頁面載入時候,就使td節點具有click點選能力 $(document).ready(function() {var tdNods = $(".tableBody td");tdNods.click(tdClick); }); // td的點選事件 function
設定table中的td寬度不同
類似站內簡訊的形式的一個table,想要的實現結果如下格式: 剛開始覺得“這裡是名字”的td設定寬度為20%就可以了,程式碼如下: <table> <tr class="messageTrU">
SQL SERVER如何獲取指定資料庫中所有儲存過程的引數
SELECT sp.object_Id as FunctionId, sp.name as FunctionName, isnull(param.name,'')as ParamName,isnull(usrt.name,'') AS [DataTy
巧用Excel批量提取資料夾中所有檔名稱
在工作中,有時候,我們需要整理資料夾中的所有檔名稱,並羅列在一張表格中。天哪,我的資料夾中有上千個檔案,要我一個個的複製貼上嗎?太麻煩了吧?今天,跟著小編一起來探索一種巧妙的方法吧,提升百倍效率哦! 1、首先我們開啟excel,點選“公式”選項卡,單擊“定義名稱”按鈕,彈出
提取資料夾中所有檔名(Windows)
在進行附加依賴項新增lib的時候,經常要提取lib資料夾中所有的.lib檔名。 以下為一個很好的方法利用系統批處理檔案來進行檔名稱的提取。 先在需要提取名稱的資料夾內新建一個文字文件(即.txt檔案)。 開啟新件的文字文件,並輸入“DIR *.* /B &g
懸浮顯示input中所有的內容
專案中經常會遇到這個問題,在一個內容框中,由於框的寬度是固定的,但是裡面的內容卻有
linux提取指定列字符並打印所有內容(awk)
sample 文件 amp col $2 表達式 info logs 文件中 假設有文件長如下樣子: CHROM POS ID REF ALT QUAL FILTER INFO FORMAT samplename 1
table中td超出內容隱藏,鼠標懸停全部顯示(完整版,含js代碼)
效果 pre order 出現 fun 默認 css語法 標記 -a 一、CSS語法: text-overflow:clip | ellipsis 默認值:clip 適用於:所有元素 clip: 當對象內文本溢出時不顯示省略標記(...),而是將溢出的部分裁切掉。 elli
linux批量替換指定文件夾中所有文件的指定內容
lac 指定 clas edit 批量替換 表示 文件的 文件 lin 命令:sed -i "s#https#http#g" `grep http -rl VEROMODA` 功能:用來替換當前目錄VEROMODA文件夾及子文件夾中所有文件中的https為http. 說明:
使用js方法將table表格中指定列指定行中相同內容的單元格進行合並操作。
var get 是否 for true ntb doc ide 就是 一、簡介 使用js方法對html中的table表格進行單元格的行列合並操作。 網上執行此操作的實例方法有很多,但根據實際業務的區別,大多不適用。 所以在網上各位大神寫的方法的基礎上進行了部分修改以適合自己
怎麽讓table中的<td>內容向上對齊
span clas style class spa ble color 向上 pan <td valign="top"></td> 怎麽讓table中的<td>內容向上對齊
點選table中的某一個td 獲得這個tr的所有資料
功能: 點選table中的某一個td,獲得這個tr的所有資料效果圖<html><head><script> function getData2(element){ document.getElementById("name