Java语言高分悬赏:怎么提取百度新闻的标题到一个文本文件,可以使用httpclient的方法
2条回答 默认 最新
- Z_墨脱 2020-04-27 17:34关注
public class News {
public static void main(String[] args) throws ClientProtocolException, IOException {
// 创建HttpClient实例
CloseableHttpClient httpClient = HttpClients.createDefault();
// 创建httpget实例
HttpGet httpGet = new HttpGet("https://news.baidu.com/");RequestConfig config = RequestConfig.custom() .setConnectTimeout(10000)//设置连接超时时间10秒钟,单位毫秒 .setSocketTimeout(10000) //设置读取超时时间10秒钟 .build(); httpGet.setConfig(config); // 设置请求头消息User-Agent模拟浏览器 httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/59.0"); // 执行get请求 CloseableHttpResponse response = httpClient.execute(httpGet); // 获取返回实体 HttpEntity entity = response.getEntity(); // 实体的内容(编码格式为utf-8) String content = EntityUtils.toString(entity, "utf-8"); // System.out.println("网页内容为: " + content); // 解析网页 得到文档对象 Document doc = Jsoup.parse(content); Elements hrefElements = doc.select("a[href]");// 选择所有的a元素 for (Element e : hrefElements) { System.out.println("新闻标题:" + e.text()); System.out.println("新闻地址:" + e.attr("href")); System.out.println("------------------------"); } }
}
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报