java实现获取各网站的机票信息_java爬取某个机票查询网站上面的信息(刚学!!!)...
[Java] 纯文本查看 复制代码[ 本帖最后由 shangjS009 于 2018-5-25 15:41 编辑 ]\n\n@RequestMapping(value = "${adminPath}/python/rFeichangzhun")
public class RFeichangzhunController extends BaseController {
private static CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建一个客户端
private static String filename = "d:" + File.separator + File.separator
+ "zhuye.html"; // 定义输出html文件的路径
private static String filenames = "d:" + File.separator + File.separator
+ "xiangxi.html"; // 定义输出html文件的路径
private static String outfile = "d:" + File.separator + File.separator
+ "liudehua.csv"; // 定义输出csv文件的路径
private static boolean bfile = true; // 定义控制输出file的boolean变量
private static boolean bdb = true; // 定义控制输出file的boolean变量
private static ArrayList datalist = new ArrayList(); // 定义Arraylist类集用来保存每一条数据的信息
private static String headtitle = "航班信息,计划起飞,出发地,计划到达,到达地"; // 打印的标题头
private static int countrs = 0; // 计数变量
/**
* 输出html文件
*/
public static void htmltoFile(String htmlString) throws Exception {
// 获得文件输出流
FileOutputStream output = new FileOutputStream(filename);
// 以utf-8编码的形式输出到文件(utf-8是中文编码,ISO-8859-1是英文编码)
output.write(htmlString.getBytes("utf-8"));
if (output != null) {
output.close();
}
}
/**
* 下载页面
*/
public static String downloadPage(String url) throws Exception {
String htmlString = ""; // 定义返回的String变量
HttpGet request = new HttpGet(url); // 请求资源
CloseableHttpResponse response = httpclient.execute(request); // 得到回应
try {
System.out.println(response.getStatusLine()); // 打印状态码
HttpEntity entity = response.getEntity(); // 获得Entity对象
htmlString = EntityUtils.toString(entity); // 将Entity对象转化为字符串
EntityUtils.consume(entity); // 销毁对象
} finally {
response.close();
}
htmltoFile(htmlString); // 调用htmltoFile()方法在制定路径输出html文件
return htmlString;
}
@RequiresPermissions("python:rFeichangzhun:view")
@RequestMapping(value = { "python" })
public String python(RFeichangzhun rFeichangzhun,
HttpServletRequest request, HttpServletResponse response,
Model model) throws Exception {
String didian = request.getParameter("didian");
String riqi = request.getParameter("riqi");
String hangbanhao = request.getParameter("hangbanhao");
String url = "http://www.variflight.com/flight/fnum/" + hangbanhao
+ ".html?AE71649A58c77&fdate=" + riqi;
String url2 = "http://www.variflight.com/schedule/"+didian+"-"+hangbanhao+".html?AE71649A58c77=&fdate="+riqi;
getDouBanList(url, riqi, url2);
return "modules/python/rFeichangzhunList";
}
/**
* 获取非常准航班信息
*
* @throws Exception
*/
public void getDouBanList(String surl, String riqi, String surls)
throws Exception {
String html = RFeichangzhunController.downloadPage(surl); // 通过url下载页面
String html2 = RFeichangzhunController.downloadPages(surls);
html = html.replace("star clearfix", "star_clearfix"); // 用"star_clearfix"替代"star clearfix"
html2 = html2.replace("star clearfix", "star_clearfix");
Document doc = Jsoup.parse(html); // 解析获取Document对象
Document docs = Jsoup.parse(html2);
Element divNode = doc.getElementsByClass("li_box").first(); // 通过getElementsByClass方法获取class为"li_box"的div节点对象
Element divNodes = docs.getElementsByClass("flyProc").first();
Elements liTag = divNode.select("li[style]"); // 通过select选择器选择有class属性的li标签节点,返回Element元素的集合
// Elements liTag1 = divNodes.select("span[class]");
Elements liTag2 = divNodes.select("div[class]");
// System.out.println(liTag2);
String title, jpg;
for (Element liNode : liTag) { // 对于liTag Element集合中的每一个元素liNode
Element dd = liNode.select("div").first(); // 取得liNode的第一个a节点对象
title = dd.getElementsByTag("span").text(); // 使用getElementsByTag方法,通过标签名称取得a标签节点对象,然后取其中的文本元素,即为电影名称
jpg = dd.getElementsByTag("span").html();
String[] strs = title.split(" ");
RFeichangzhun rFeichangzhun = new RFeichangzhun();
rFeichangzhun.setQueryDate(riqi);
String a = (strs[0].toString() + " " + strs[1].toString());
rFeichangzhun.setFlightXinxi(a);
String b = strs[2].toString();
rFeichangzhun.setPlanTime(b);
String c = strs[4].toString();
rFeichangzhun.setChufadi(c);
String d = strs[5].toString();
String e = strs[7].toString();
rFeichangzhun.setDaodadi(e);
String f = strs[9].toString();
rFeichangzhun.setStatus(f);
for (Element liNodes : liTag2) {
Element bb = liNodes.select("div").first();
title = bb.getElementsByTag("span").text();
String[] strs2 = title.split(" ");
String aa = strs2[1].toString();
String cc = strs2[strs2.length - 1].toString();// 8
System.out.println(aa);
System.out.println(cc);
java实现获取各网站的机票信息_java爬取某个机票查询网站上面的信息(刚学!!!)...相关推荐
- java爬取论坛信息_Java爬取校内论坛新帖
Java爬取校内论坛新帖 为了保持消息灵通,博主没事会上上校内论坛看看新帖,作为爬虫爱好者,博主萌生了写个爬虫自动下载的想法. 嗯,这次就选Java. 第三方库准备 Jsoup Jsoup是一款比较好 ...
- python爬取链家租房信息_Python爬取链家网上海市租房信息
使用Python进行上海市租房信息爬取,通过requests + Beautifulsoup对网页内容进行抓取和数据提取. import requests from bs4 import Beauti ...
- 大数据信息资料采集:中国知网文献资料网站数据信息资料爬取
大数据信息资料采集:中国知网文献资料网站数据信息资料爬取 数据采集满足多种业务场景:适合产品.运营.销售.数据分析.政府机关.电商从业者.学术研究等多种身份职业. 舆情监控:全方位监测公开信息,抢先获 ...
- python爬虫实战之图灵社区图书信息的爬取(找了久,才找到一个比较好爬取的网站)
python爬虫实战之图灵社区图书信息的爬取 程序的描述 目标 获取图灵社区(https://www.ituring.com.cn/book)中40本图书的书名 将获取的信息以列表的形式输出到屏幕上, ...
- JAVA爬虫(一):豆瓣电影排行榜爬取
JAVA爬虫(一):豆瓣电影排行榜爬取 前言 流程图 步骤 一.爬取豆瓣电影榜单网页源代码 二.网页源码解析 三.爬取单个电影网页源码 四.源代码解析及关键信息获取 前言 最近和大创队友一起给大创做的 ...
- python爬取商品信息_python爬取商品信息
原博文 2014-11-27 02:09 − 老严要爬某网购网站的商品信息,正好我最近在学python,就一起写了一个简单的爬虫程序. 需求:某网的商品信息,包括商品名,市场价和售价 工具:pytho ...
- 爬取虎牙之一:(王者荣耀主播信息普通爬取)
使用工具 jsoup 对于新手而言,jsoup无疑是最简单的抓取工具之一,强大的解析能力让人方便使用,对于我们新手而言,获取只是看过爬虫书或者资料用简单的例子爬取所有链接,想要爬取想要的内容,首先要熟 ...
- python人人贷爬虫_爬取人人贷网上部分借贷信息以及数据可视化
一.主题式网络爬虫设计方案:爬取人人贷网上部分借贷信息 1.主题式网络爬虫名称:爬取人人贷网上部分信息 2.主题式网络爬虫的内容与数据特征分析:爬取人人贷部分信息数据,借贷信息 3.主题式网络爬虫设计 ...
- 北京房租到底有多高? | 爬取北京海淀区一居室租房信息
图片来源:花瓣网 文章来源 人工智能与大数据生活 如需转载,请联系原作者授权 最近北京房租成了热门话题,到底北京的房租有多高? 本次实战是爬取北京海淀区一居室的租房信息,共爬取了300套房源信息,看一 ...
最新文章
- 数字图像处理:第十三章 图象复原
- picker封装 uniapp_uniapp自定义picker城市多级联动组件
- LeetCode篇之栈:20(括号匹配问题)
- Java 内部类
- python程序员面试自我介绍_如何拿到面试公司一半Offer——我的Python求职之路
- 迅捷cad_迅捷套装
- 工作中关于 使用YUICompressor进行JS压缩 的问题小节
- 德标螺纹规格对照表_国标德标对照表
- 联华精选APP--请求body体和返回体加解密
- 校园虚拟服务器设备配置规划,校园高性能虚拟化服务器平台建设规划.doc
- java相对路径保存文件夹_java项目路径 文件路径 相对路径 整理
- 曾拯救Apple Watch的苹果工程师如今后继无人,美国制造业回流的人才之痛
- ​NeurIPS 2022 | IPMT:用于小样本语义分割的中间原型挖掘Transformer
- Java WebSocket编程与网页简易聊天室
- 机器学习强基计划4-2:通俗理解极大似然估计和极大后验估计+实例分析
- 大型网站具备的9大特点
- DR模式——LVS负载均衡群集
- 计算机辅助造型软件,AutoCAD 2010 专业的大型计算机辅助设计软件
- 物联网到底是什么,生活中能用得上吗?
- Trafodion ROLLUP函数