天气预报之抓取、解析、存入MYSQL数据库模块实现,不规范(代码)

package com.zzk.cn;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.ProtocolException;
import java.net.URL;
import java.sql.*;
import java.util.Enumeration;
import java.util.Properties;

import net.sf.json.JSONObject;

/**
 *
 * @author zhuzhengke
 * @version 1.0.0
 * 
 */


public class Json {

	static String info = "";

	/*主函数*/
	public static void main(String[] args) throws UnsupportedEncodingException {
		//抓取网页
		getInfo(101010100);
		//解析字段
		readJson();
		//insertMysql();
	}
	
	public class GetInfo {
		public void getInfo(int id) {
			
			String path = "http://m.weather.com.cn/data/"+id+".html";
			URL url;
			String inputline = "";
			InputStream input = null;
			InputStreamReader reader = null;
			BufferedReader buffer = null;
			
			try {
				url = new URL(path);
				HttpURLConnection conn = (HttpURLConnection) url.openConnection();
				conn.setReadTimeout(10 * 1000);
				conn.setRequestMethod("GET");

				input = conn.getInputStream();
				reader = new InputStreamReader(input,"utf8");
				buffer = new BufferedReader(reader);

				while ((inputline = buffer.readLine()) != null) {
					info += inputline;
				}

			} catch (ProtocolException e) {
				e.printStackTrace();
			} catch (MalformedURLException e) {
				e.printStackTrace();
			} catch (IOException e) {
				e.printStackTrace();
			}finally {
		
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python提供了多线程模块`threading`,可以方便地实现多线程抓取数据存入数据库的方法。 首先,我们需要导入必要的库和模块。常用的库包括`requests`用于发送HTTP请求,`BeautifulSoup`用于解析HTML内容,`threading`用于启动和管理多线程,以及数据库库比如`mysql-connector-python`用于与数据库交互等。 接下来,我们可以定义一个函数来实现数据抓取存入数据库的逻辑。这个函数会接受一些参数,比如抓取数据的URL,要存入数据库的表名等。 在函数内部,我们会使用`requests`库发送HTTP请求并获取响应内容。然后,使用`BeautifulSoup`解析响应内容,提取需要的数据。 将提取得到的数据存入数据库之前,需要先与数据库建立连接。连接数据库可以使用`mysql-connector-python`或者其他合适的数据库库。之后,可以使用SQL语句将数据插入到指定的表中。 在主函数中,我们可以创建多个线程来并发执行数据抓取存储的任务。每个线程负责一个特定的URL或者一组URL的抓取。可以通过创建线程对象并调用其`start()`方法来启动线程。 最后,我们需要在主函数中等待所有线程的完成,可以通过调用`join()`方法实现。 通过上述方法,我们就可以实现基于多线程的数据抓取存入数据库的功能。多线程的特点可以提高抓取存储的效率,加快整个过程的执行速度。当然,我们还需要考虑多线程的并发性和同步问题,比如避免多个线程同时操作数据库的同一部分等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值