用java爬取51job招聘信息,使用requests库、json库在51job主页爬取福州JAVA工程师相关招聘信息,保留爬取的信息页面信息,每一行职位信息用50个“-”符号分隔,将爬取到的数据保存为txt文档。
时间: 2024-10-13 09:05:47 浏览: 23
在Java中使用requests和json库来爬取51Job网站上的招聘信息需要经过几个步骤。首先,你需要安装`requests`库,如果你还没有安装,可以使用`pip install requests`命令来安装。
以下是一个简单的示例,展示如何编写Python脚本来实现这个需求:
```java
import java.io.FileWriter;
import java.io.IOException;
import org.json.JSONArray;
import org.json.JSONObject;
import requests.RequestException;
public class FuzhouJobScraper {
public static void main(String[] args) {
String url = "https://search.51job.com/list/080100,000000,0000,01,99,python&cityId=000000"; // 福州JAVA工程师搜索URL
try {
// 发送GET请求并获取JSON响应
JSONObject responseJson = getResponse(url);
// 解析职位信息
JSONArray jobList = responseJson.getJSONArray("result");
for (int i = 0; i < jobList.length(); i++) {
JSONObject job = jobList.getJSONObject(i);
String title = job.getString("jobtitle"); // 职位标题
String company = job.getString("company"); // 公司名称
// ... (如果存在的话) 你可以提取更多信息如职位链接等
// 将信息格式化为每行50个"-"
String formattedInfo = formatInfo(title, company, "-");
// 写入文本文件
writeToFile(formattedInfo, "fuzhou_java_engineers.txt");
}
} catch (IOException | RequestException e) {
e.printStackTrace();
}
}
private static JSONObject getResponse(String url) throws IOException, RequestException {
// 使用requests库发送GET请求
JSONObject jsonResponse = new JSONObject(requests.get(url).text());
return jsonResponse;
}
private static String formatInfo(String... info) {
StringBuilder sb = new StringBuilder();
for (String part : info) {
if (sb.length() + part.length() <= 50) { // 如果还有空间,添加部分信息
sb.append(part);
} else { // 否则换行,并在新行开头添加-
sb.append("\n" + Strings.repeat("-", 50));
sb.append(part);
}
}
return sb.toString();
}
private static void writeToFile(String content, String fileName) throws IOException {
FileWriter writer = new FileWriter(fileName);
writer.write(content);
writer.close();
}
}
阅读全文