Jsoup でタグによって要素をキャッチする際に 1 つの問題が発生しています。メソッド links.html() writen in の戻り値はString crawlingNode = links.html();
、.txt ファイルに、スペースや行区切りのない文字列全体を書き込みます。ただし、コンソールでは、リンクが行ごとに分割されていることが示されます。html() メソッドを使用してリンクを行ごとに分割する .txt ファイルに書き込む方法が 1 つあるかどうかを尋ねる必要がありますか? 私にとっては、コンソールで返されたメソッドが分割されて表示され、.txt ファイルで同じことができることは意味がありません
ps: 短いバージョンを提供できなくて申し訳ありませんが、コードは完全に実行可能です。に焦点を当てる
Elements links = doc.getElementsByTag("cite");
String crawlingNode = links.html();
crawlingNode = crawlingNode.replaceAll("(?=<).*?(>=?)", ""); //Remove undesired html tags
System.out.println(crawlingNode);
httptest.WriteOnFile(writer, crawlingNode);
解決したい問題を含む部分。前もって感謝します!
public class httptest {
static File file;
File folder= null;
String crawlingNode, date, timeZone,Tag="Google Node";
static BufferedWriter writer = null;
static httptest ht;
public httptest() throws IOException{
date = new SimpleDateFormat("yyyy.MM.dd hh-mm-ss").format(new Date());
folder = new File("queries/downloads/"+date+" "+TimeZone.getDefault().getDisplayName());
file = new File(folder.getPath()+"\\"+date+" "+Tag+".txt");
folder.mkdir();
}
private void GetLinks() throws IOException{
Document doc = Jsoup.connect("http://google.com/search?q=mamamia")
.userAgent("Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.8.1.6) Gecko/20070723 Iceweasel/2.0.0.6 (Debian-2.0.0.6-0etch1)")
.cookie("auth", "token")
.timeout(3000)
.get();
Elements links = doc.getElementsByTag("cite");
String crawlingNode = links.html();
crawlingNode = crawlingNode.replaceAll("(?=<).*?(>=?)", ""); //Remove undesired html tags
System.out.println(crawlingNode);
httptest.WriteOnFile(writer, crawlingNode);
}
private static void OpenWriter(File file){
try {
writer = new BufferedWriter(new FileWriter(file));
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "Failed to open URL Writer");
e.printStackTrace();
}
}
private static void WriteOnFile(BufferedWriter writer, String crawlingNode){
try {
writer.write(crawlingNode);
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "Failed to write URL Node");
e.printStackTrace();
}
}
private static void CloseWriter(BufferedWriter writer){
try {
writer.close();
} catch (IOException e) {
JOptionPane.showMessageDialog(null, "Unable to close URL Writer");
System.err.println(e);
}
}
public static void main (String[] args) throws IOException{
ht = new httptest();
httptest.OpenWriter(file);
ht.GetLinks();
httptest.CloseWriter(writer);
}
}