У меня возникает одна проблема, захватывающая элементы по тегу в Jsoup. Возврат метода links.html() writen в String crawlingNode = links.html();
записывает в .txt файл целую строку без пробелов или делений строк. Но в консоли он показывает, что ссылки делятся на строку. Итак, мне нужно задать , если есть один способ записи в файле .txt, ссылки разделяются на строки с использованием метода html()? Для меня не имеет смысла, что возвращаемый метод на консоли отображается разделенным и в файле .txt я могу сделать то же самоеКак разделить строки, используя метод html() в Jsoup
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);
}
}
Попробуйте следующее: WriteOnFile (writer, crawlingNode + "\ n"); – Collin
Я пробовал httptest.WriteOnFile (писатель, crawlingNode + System.lineSeparator() + "gogogo"); Это корректно печатается даже в блокноте, что означает, что метод html возвращает действительно одну большую строку, которая не должна содержать ломаных строк ... может понять, как ее отображение в консоли или в других редакторах. –
Если я попытаюсь заменить линии break с помощью crawlingNode.replaceAll (System.getProperty («line.separator»), «GOGO»); ничего не происходит, а значит, нет символов breaklines =/ –