我正在抓取一个将数据存储在csv中的网站。代码工作正常,但问题是HTML中的所有地方都在使用,代码正在放置'Â'。为了避免这种情况,我尝试了一些东西(在下面的代码中提到)但是由于该代码再次重写了这些数据。现在,我真正想要的是'这应该被移除而不会对数据造成任何干扰。
for (Iterator<Element> it = tdElements.iterator(); it.hasNext();) {
if (it.hasNext()) {
sb.append(" , ");
sb.append(" \r\n ");
}
for (Iterator<Element> it2 = tdElements.iterator(); it.hasNext();) {
Element tdElement2 = it.next();
final String content;
content = tdElement2.text().replace(",", "");
//I added the following code to avoid that 'Â'
final String content2;
content2 = tdElement2.text().replace("\u00a0","");
if (it2.hasNext()) {
sb.append(formatData(content));
sb.append(formatData(content2));
sb.append(" , ");
}
}
System.out.println(sb.toString());
sb.flush();
sb.close();
}
我理解为什么它会重写数据,因为sb.append(formatData(content));
我将整个数据追加两次,这就是为什么它会产生问题。那么如何同时管理','和''。
答案 0 :(得分:1)
您应该对修改后的字符串进行替换,然后您只需添加content2。
String content = tdElement2.text().replace(",", "");
//I added the following code to avoid that 'Â'
String content2 = content.replace("\u00a0","");
if (it2.hasNext()) {
sb.append(formatData(content2));
sb.append(" , ");
}
您也可以将其重写为
String content2 = tdElement2.text().replace(",", "").replace("\u00a0","");
if (it2.hasNext()) {
sb.append(formatData(content2)).append(" , ");
}