资源简介
很简易的java爬虫 可以爬取携程的航班数据,并使用jsoup进行解析

代码片段和文件信息
package com.Interface;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import org.apache.http.HttpEntity;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClientBuilder;
import org.apache.http.util.EntityUtils;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import net.sf.json.JSONArray;
import net.sf.json.JSONobject;
public class CrawlerHttpClient {
// 创建一个客户端 类似打开一个浏览器
private static CloseableHttpClient httpClient = HttpClientBuilder.create().build();
// 创建一个get方法,类似在浏览器中输入一个地址,path则为URL的值
static HttpGet httpGet;
static CloseableHttpResponse response;
static HttpEntity httpEntity;
private static Map map;
static {
map = new HashMap();
map.put(“KY“ “昆明航空“);
}
public static void getAirLineDetails(String flight) {
String time = getDateString(-1 “yyyyMMdd“);// new Date()为获取当前系统时间
String path = “https://flights.ctrip.com/actualtime/fno--“ + flight + “-“ + time + “.html“;
// 创建get请求
httpGet = new HttpGet(path);
httpGet.setHeader(“User-Agent“
“Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML like Gecko) Chrome/74.0.3729.131 Safari/537.36“);
String airLineName = null;
String airLineNo = null;
String airLineDate = null;
String airLineDay = ““;
String timetakeOff = ““;
String planTakeOff = ““;
String timeArrive = ““;
String planArrive = ““;
String airLineStartCity = ““;
String airLineEndCity = ““;
try {
// 获取响应模型
response = httpClient.execute(httpGet);
// 获取响应实体
httpEntity = response.getEntity();
if (httpEntity != null) {
// System.out.println(“响应内容长度为:“ + httpEntity.getContentLength());
// System.out.println(“响应内容为:“ + EntityUtils.toString(httpEntity));
Document doc = Jsoup.parse(EntityUtils.toString(httpEntity));
airLineName = doc.select(“div.detail-t“).select(“span.ml5“).first().text();
// System.out.println(“航空公司:“ + airLineName);
airLineNo = doc.select(“div.detail-t“).select(“strong.ml5“).text();
// System.out.println(“航班号:“ + airLineNo);
airLineDate = doc.select(“div.detail-t“).select(“span.ml10“).first().text();
// System.out.println(“航班日期:“ + airLineDate);
airLineDay = doc.select(“div.detail-t“).select(“span.ml5“).last().text();
// System.out.println(“周几:“ + airLineDay);
Elements airLineDetails = doc.select(“div.detail-m“);
//System.out.println(doc.select(“div.detai
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 13360 2019-07-18 11:59 air\.classpath
文件 585 2019-07-18 11:52 air\.project
文件 718 2019-07-18 11:52 air\.settings\org.eclipse.jdt.core.prefs
文件 206 2019-07-18 11:58 air\.settings\org.eclipse.wst.common.project.facet.core.xm
文件 9658 2019-07-18 14:20 air\bin\com\Interface\CrawlerHttpClient.class
文件 10804 2019-07-18 14:20 air\src\com\Interface\CrawlerHttpClient.java
目录 0 2019-07-19 11:22 air\bin\com\Interface
目录 0 2019-07-19 11:22 air\src\com\Interface
目录 0 2019-07-19 11:22 air\bin\com
目录 0 2019-07-19 11:22 air\src\com
目录 0 2019-07-19 11:22 air\.settings
目录 0 2019-07-19 11:22 air\bin
目录 0 2019-07-19 11:22 air\src
目录 0 2019-07-19 11:22 air
----------- --------- ---------- ----- ----
35331 14
相关资源
- 基于http的Java爬虫爬取百度新闻
- 微信公众号爬取数据
- 基于JAVA技术爬虫爬网站图片设计与实
- 用java实现爬虫抓取网页中的表格数据
- 基于强智科技教务系统学生成绩爬虫
- java网络爬虫搜索引擎
- jsp搜索引擎完整源码自带网络爬虫功
- SQL注入漏洞检测原型工具
- java地址转换经纬度
- 用java实现爬虫抓取网页中的表格数据
- java实现的主题爬虫
- 基于java的文本搜索引擎的设计与实现
- 爬虫工具,用于获取平行语料
- 知乎爬虫最新版
- 网络爬虫 PDF
- Java+爬虫+爬取图片+完整案例+源码
- 基于java实现网络爬虫
- htmlunit 及其 依赖包
- 12306Java爬虫
- 网络爬虫jar包全
- Java爬虫汽车之家图片
- Java Web+爬虫+lucene 大学新闻网
- java爬取携程酒店评价信息
- android文字识别并翻译
- Java网络爬虫源码
- java 爬虫教学
- JAVA爬豆瓣电影数据文件流.zip
- java爬虫爬取当当网图书信息
- htmlunit-2.15-bin.zip
- Java实现网路爬虫爬取新闻信息
评论
共有 条评论