文档章节

获取页面的抓取

CarlDing
 CarlDing
发布于 2016/03/11 13:58
字数 245
阅读 5
收藏 0
 package cn.demo;
import java.io.ByteArrayInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.Base64;
import javax.print.Doc;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.junit.Test;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
public class Demo02_Weather {
 @Test
 public void test1() throws Exception {
  String city = "海口";
  city = URLEncoder.encode(city, "UTF-8");
  System.err.println(city);
  URL url = new URL("" + "WebServices/WeatherWS.asmx/" + "getWeather?theCityCode=" + city
    + "&theUserID=");
  HttpURLConnection con = (HttpURLConnection) url.openConnection();
  con.setRequestMethod("GET");
  con.setConnectTimeout(3000);
  con.setDoInput(true);
  con.connect();
  int code = con.getResponseCode();
  StringBuffer sb = new StringBuffer();
  if (code == 200) {
   InputStream in = con.getInputStream();
   byte[] bs = new byte[1024];
   int len = 0;
   while ((len = in.read(bs)) != -1) {
    sb.append(new String(bs, 0, len));
   }
   in.close();
  }
  con.disconnect();
  DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
  Document dom = db.parse(new ByteArrayInputStream(sb.toString().getBytes()));
  NodeList nl = dom.getElementsByTagName("string");
  Element e1 = (Element) nl.item(7);
  Element e2 = (Element) nl.item(8);
  Element e3 = (Element) nl.item(9);
  System.err.println(e1.getTextContent());
  System.err.println(e2.getTextContent());
  System.err.println(e3.getTextContent());
 }
 @Test
 public void test2() throws Exception {
  URL url = new URL("");
  HttpURLConnection con = (HttpURLConnection) url.openConnection();
  con.setRequestMethod("GET");
  con.setConnectTimeout(3000);
  con.setDoInput(true);
  con.connect();
  int code = con.getResponseCode();
  StringBuffer sb = new StringBuffer();
  if (code == 200) {
   InputStream in = con.getInputStream();
   byte[] bs = new byte[1024];
   int len = 0;
   while ((len = in.read(bs)) != -1) {
    sb.append(new String(bs, 0, len));
   }
   in.close();
  }
  con.disconnect();
  DocumentBuilder db = DocumentBuilderFactory.newInstance().newDocumentBuilder();
  Document dom = db.parse(new ByteArrayInputStream(sb.toString().getBytes()));
  String str = dom.getFirstChild().getTextContent();
  System.err.println(str);
  
  //将它
  byte[] bs =  Base64.getDecoder().decode(str);
  OutputStream out = new FileOutputStream("D:/a/a1.mp3");
  out.write(bs);
  out.close();
 }
}

© 著作权归作者所有

下一篇: xml2
CarlDing
粉丝 5
博文 106
码字总数 78103
作品 0
济南
其他
私信 提问
快速构建实时抓取集群

本文转载自搜淘宝索技术博客,描述了实时抓取集群的架构。其架构中使用Redis作为核心的LinkBase存储,包括了使用List结构来存储抓取队列,使用Hash结构来存储链接表及使用Sorted Sets结构来存...

红薯
2011/07/31
1K
0
Python_爬取京东商品信息

昨天做了一个关于爬取京东商品信息的程序,刚开始拿到题目的时候,就很简单的思路,以为30分钟就可以搞定。然而在实现过程中还是遇到了很多的问题,我现在就总结一下,记录这一次小小的成功。...

咖啡绿茶不加糖
2017/04/20
0
0
利用http协议调用外部接口+用json和正则解析字符串

利用http协议调用url,进行对页面数据的抓取(听起来好像就是传说中的爬虫,百度那样的),代码如下: public static String Get(String path,String encoding) throws Exception{//获取需要抓取页...

AK灬
2015/07/28
964
3
Python3萌新入门笔记(52)

Python3萌新入门笔记(52) Python自动化运维2017-12-046 阅读 PythonPython教程HTMLParserurllib 这一篇教程,我们来了解如何爬取网页内容。 这里我们可以使用urllib这个模块。 基于前面的学...

Python自动化运维
2017/12/04
0
0
详解python爬取今日头条街拍美图

之前已经爬过今日头条街拍的美图,今天再次完善一下代码,并详解爬取过程及遇到的坑。废话不多说,抓紧上车啦。 分析页面 分析索引页 我们打开今日头条官网,在在搜索框输入「街拍」 然后点击...

sixkery
2018/08/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

zk中ToBeAppliedRequestProcessor解析

ToBeAppliedRequestProcessor在Leader中 在已处理事务和最后处理事务处理器之间,处理器链上下一个是FinalRequestProcessor public void processRequest(Request request) throws RequestPro...

writeademo
25分钟前
2
0
Allegro快捷键设置-PCB环境

立题简介: 内容:简单介绍Allegro绘制的PCB环境下的快捷键; 来源:实际使用得出; 作用:对Allegro绘制PCB快捷键进行介绍; PCB环境:Cadence 16.6; 立题详解: 对“allegro”板而言,其在...

demyar
26分钟前
2
0
idea maven web项目启动build时报错java.lang.NullPointerException

之前还好好的,重启一下idea就报这个错了,大概率是tomcat没杀掉端口被占用了,在tomcat配置中更换一下sever端口就好了

宇辰OSC
30分钟前
3
0
weed3-2.3.1.查询之输出

Weed3 一个超轻量级ORM框架(只有0.1Mb哦) 源码:https://github.com/noear/weed3 源码:https://gitee.com/noear/weed3 查询可是个复杂的话题了,可能我们80%的数据库处理都在查询。 今天先...

刘之西东
30分钟前
3
0
【Android JetPack系列】数据绑定:DataBinding

参考MVVM

Agnes2017
39分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部