java 从网页httpswwwxhjcomershoufangyueluqu爬取至少100条二手房的信息 标题 面积 房型 地址 楼盘名 总价 单价 String double int数组 string String double double
您可以使用Java的网络爬虫技术来从指定网页上爬取数据。以下是一个简单的示例代码,用于从指定网页上爬取至少100条二手房的信息,并以对象流的形式存储:
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
public class HouseCrawler {
public static void main(String[] args) {
String url = "https://www.xhj.com/ershoufang/yueluqu/";
List<House> houses = crawlHouses(url);
// 存储房屋信息
saveHouses(houses);
}
public static List<House> crawlHouses(String url) {
List<House> houses = new ArrayList<>();
try {
Document doc = Jsoup.connect(url).get();
Elements houseElements = doc.select(".house-item");
for (Element houseElement : houseElements) {
String title = houseElement.select(".title").text();
String area = houseElement.select(".area").text();
String layout = houseElement.select(".layout").text();
String address = houseElement.select(".address").text();
String community = houseElement.select(".community").text();
double totalPrice = Double.parseDouble(houseElement.select(".total-price").text());
double unitPrice = Double.parseDouble(houseElement.select(".unit-price").text());
House house = new House(title, area, layout, address, community, totalPrice, unitPrice);
houses.add(house);
if (houses.size() >= 100) {
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}
return houses;
}
public static void saveHouses(List<House> houses) {
try {
FileOutputStream fos = new FileOutputStream("houses.dat");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(houses);
oos.close();
} catch (Exception e) {
e.printStackTrace();
}
}
public static class House implements Serializable {
private String title;
private String area;
private String layout;
private String address;
private String community;
private double totalPrice;
private double unitPrice;
public House(String title, String area, String layout, String address, String community, double totalPrice, double unitPrice) {
this.title = title;
this.area = area;
this.layout = layout;
this.address = address;
this.community = community;
this.totalPrice = totalPrice;
this.unitPrice = unitPrice;
}
// Getters and setters
// toString method
}
}
这段代码使用Jsoup库来解析HTML页面,并通过选择器定位目标元素,获取房屋的标题、面积、房型、地址、楼盘名、总价和单价等信息。然后将房屋信息存储在一个House对象中,再将House对象存储在一个List中。最后,使用对象输出流将List对象存储到文件中。
您可以根据需求自定义封装方法,来实现通过输入区、价格区间、房型、总价等条件对房屋信息进行查询。可以使用Collections.sort()方法来对房屋信息进行价格的升序或降序排序
原文地址: https://www.cveoy.top/t/topic/hCzO 著作权归作者所有。请勿转载和采集!