通过爬虫爬取公共资源交易平台(四川省)最近的招标信息

一:引入JSON的相关的依赖

<dependency>
       <groupId>net.sf.json-lib</groupId>
      <artifactId>json-lib</artifactId>
      <version>2.4</version>
     <classifier>jdk15</classifier>
</dependency>

二:通过请求的url获取URLConnection连接

package com.svse.pachong;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;

import org.apache.log4j.Logger;
/**
* 通过请求的url获取URLConnection连接
* @author lenovo
* @date 2019年1月22日
* description:
*/
public class open_url_test {

  public static Logger logger = Logger.getLogger(open_url_test.class);

  public boolean openurl(String url_infor) throws Exception{
      URL url = new URL(url_infor);
      // 连接类的父类,抽象类
     URLConnection urlConnection = url.openConnection();

    // http的连接类
    HttpURLConnection httpURLConnection = (HttpURLConnection) urlConnection;

  /* 设定请求的方法,默认是GET(对于知识库的附件服务器必须是GET,如果是POST会返回405。

流程附件迁移功能里面必须是POST,有所区分。)*/
       httpURLConnection.setRequestMethod("GET");
    // 设置字符编码 httpURLConnection.setRequestProperty("Charset", "UTF-8");
  // 打开到此 URL引用的资源的通信链接(如果尚未建立这样的连接)。
  int code = httpURLConnection.getResponseCode();
  System.out.println("code:"+code); //连接成功 200
  try {
    InputStream inputStream = httpURLConnection.getInputStream();
    System.out.println("连接成功");
    logger.info("打开"+url_infor+"成功!");
    return true;
  }catch (Exception exception){
    logger.info("打开"+url_infor+"失败!");
    return false;
  }
    }
}

三:通过爬取的url解析想要的数据,并以json的格式返回

package com.svse.pachong;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.Charset;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;

/**
* 通过爬取的url解析想要的数据,并以json的格式返回
* @param urlString 需要爬取的网站url路径
* @return 返回json结果的数据
* @throws IOException
* @throws JSONException
*/
public class readData {

  public static JSONObject readData(String urlString) throws IOException, JSONException{
       InputStream is = new URL(urlString).openStream();
            try {
      BufferedReader rd = new BufferedReader(new InputStreamReader(is, Charset.forName("UTF-8")));
      StringBuilder sb = new StringBuilder();
      int cp;
      while ((cp = rd.read()) != -1) {
        sb.append((char) cp);
      }
      String jsonText = sb.toString();
      JSONObject json = JSONObject.fromObject(jsonText);
      return json;
    } finally {
      is.close();
     }
       }
}

四:爬取入口

package com.svse.pachong;
import java.io.IOException;
import net.sf.json.JSONArray;
import net.sf.json.JSONException;
import net.sf.json.JSONObject;

/**
* 爬取的入口
* @author lenovo
* @date 2019年1月22日
* description:
*/
public class Main {

  static String urlString = "http://www.scggzy.gov.cn/Info/GetInfoListNew?keywords=&times=4&timesStart=&timesEnd=&province=&area=&businessType=&informationType=&industryType=&page=1&parm=1534929604640";

@SuppressWarnings("static-access")
   public static void main(String[] args) {

    open_url_test oUrl = new open_url_test();
    try {
      if (oUrl.openurl(urlString)) {
        readData rData = new readData();
        JSONObject json = rData.readData(urlString);
        JSONObject ob=JSONObject.fromObject(json);

        String data=ob.get("data").toString(); //JSONObject 转 String
        data="["+data.substring(1,data.length()-1)+"]";

        JSONArray json2=JSONArray.fromObject(data); //String 转 JSONArray
        for (int i = 0; i < 10; i++) {
          JSONObject   jsonObject = (JSONObject) json2.get(i);
          System.out.println("--------------------------------------------");
          System.out.println("项目: "+jsonObject.get("Title"));
          System.out.println("时间: "+jsonObject.get("CreateDateStr"));
          System.out.println(jsonObject.get("TableName"));
          System.out.println(jsonObject.get("Link"));
          System.out.println( jsonObject.get("province") +" "+jsonObject.get("username")+" "+jsonObject.get("businessType")+"             "+jsonObject.get("NoticeType"));
         }
      }else{
        System.out.println("解析数据失败!");
      }
    } catch (JSONException e) {
      e.printStackTrace();
    } catch (IOException e) {
      e.printStackTrace();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

}

四:测试结果

至此,整个爬取的任务就结束了!

转载于:https://www.cnblogs.com/zhaosq/p/10304063.html

通过爬虫爬取四川省公共资源交易平台上最近的招标信息 --- URLConnection相关推荐

  1. java爬虫 爬取动漫之家10000部漫画信息

    Java大作业,爬取信息并写入Excel. 项目下载:https://pan.baidu.com/s/1Z1rMWSyaAeGvZCm5CMgexQ(请用eclipse 2018打开,我的jdk版本是 ...

  2. Python爬虫—爬取某网站上面所有的世界港口信息数据

    最近学习了一段时间的Python基础语法后,写了一个爬取世界港口数据的爬虫,并且保存到SQL Server 数据库. 前提 公司之前有个需求是想监控集装箱如果进出某个港口的时候能给出信息提示,并且与海 ...

  3. 爬取智联招聘上的求职信息

    爬虫爬取智联招聘上的求职信息,并将爬取的内容保存到文件中 链接:https://pan.baidu.com/s/1p4gn2enm_WnyqK_3kjnoaQ 提取码:prdb 复制这段内容后打开百度 ...

  4. 把url地址复制到粘贴板上_写个简单的python爬虫爬取堆糖上漂亮的小姐姐

    简单的爬虫入门实战 最近刚学了python的爬虫,刚好可以用来爬取漂亮的图片作为壁纸,网上美图网站有很多,比如:花瓣,堆糖.它们请求图片数据的方式差不多类似,都是通过用户不断下滑加载新的图片,这种请求 ...

  5. python爬虫网页中的图片_Python爬虫爬取一个网页上的图片地址实例代码

    本文实例主要是实现爬取一个网页上的图片地址,具体如下. 读取一个网页的源代码: import urllib.request def getHtml(url): html=urllib.request. ...

  6. Python爬虫:爬取知乎上的视频,并把下载链接保存到md文件中

    Python爬虫:爬取知乎上的视频,并把下载链接保存到md文件中 1.需要的Python模块 主要是requests模块,用于得到的网页的数据 安装命令为:pip install requests 2 ...

  7. 【爬虫】应用Python爬虫爬取豆瓣租房上的帖子信息

    GitHub项目地址:https://github.com/Donvink/Spider.BC 哔哩哔哩代码讲解:https://b23.tv/waSfUa CSDN博客地址:https://blog ...

  8. 【教程+实例】Python爬虫实例——用Python爬虫爬取bangumi上的galgame资讯

    文章目录 0.前言 1.什么是爬虫? 2.什么东西可以爬? 3.简易爬虫示例 4.如何筛选数据? 5.正则表达式 6.最终代码 如何修改代码,以适应自己的需求 效果截图 7.彩蛋 本人与知乎用户间宫羽 ...

  9. Python爬虫---爬取数据(上)

    又是女票,拿了3万多条的13年某地区的公司信息,但是三年过去了,工商局的注册信息发生了巨大变化,有的注册资本增加了,有的公司老板变多了,更有不少公司不存在了,因此,需要一份最新的信息以便于她进行使用. ...

最新文章

  1. 嵌入式Linux的特点
  2. 利用Attribute简化Unity框架IOC注入
  3. 北京奥运会和上海世博会广告登上巴士 亮相纽约
  4. C++ Primer 5th笔记(chap 17 标准库特殊设施)流随机访问
  5. 阿里是如何“宠”员工的?除了福利,还有这满屏黑科技
  6. 开源技术、开放使用、业务导向的大数据平台,助力银行数字化转型
  7. 会做饭的机器人曰记_做饭机器人作文作文300字
  8. 你就非得 TCP?为啥不直接 UDP 呢!
  9. 常用PDF文档开发库
  10. CentOS7安装单机kubernetes和Docker
  11. python库下载地址
  12. 数据结构与算法(总结)
  13. C语言班主任管家系统
  14. 机器学习优化算法:牛顿法以及海森矩阵
  15. 米游社-原神每日签到含DS算法
  16. 如何使用 NoxPlayer 加速 Android 应用程序开发?
  17. 伦敦国王学院计算机申请要求,伦敦大学国王学院计算机科学与管理本科申请条件.pdf...
  18. 《power BI》 高级筛选器Filter 和Values人工造表 ALL 函数
  19. (离散数学)用谓词逻辑推理的方法证明下面推理的有效性。要求按照推理的格式书写推理过程
  20. Qt使用 QProcess来检测 ip 设备是否在线(Ping)

热门文章

  1. java setw_setw()函数使用
  2. 固网服务器win7系统驱动,固网HU-4608驱动
  3. 网管员必知:常用电脑密码破解
  4. 基于单片机的气象监测系统
  5. AUTOSAR MCAL详解: SPI (2)
  6. jquery获取span标签下的第一个span子标签内容
  7. Android中计步器的实现
  8. 单播、广播、多播(组播)的概念和区别
  9. 【光剑藏书轩2021】5分钟读懂《贫穷的本质》:“穷人通常缺少信息来源”
  10. oracle行转列实践