1. 程式人生 > >GET請求12306網站連結獲取火車站代號資訊更新到後臺資料庫表中

GET請求12306網站連結獲取火車站代號資訊更新到後臺資料庫表中

   http://www.cnblogs.com/litao4047/archive/2013/05/31/3110781.html

這個連結所表述的內容是,從12306網站上利用get解析地址獲取車站名和代號,獲取到的資料就是網站上的那個js檔案(資料沒有經過處理),全國火車站代號字典:station_name.js

今天,所要講述的就是,處理上面連結獲取到的資料,寫個插入方法將資料更新到資料庫表中。處理獲取到的資料形式如下:

   比如,獲取的一條資料是var station_names ='@bjb|北京北|VAP|beijingbei|bjb|0';經過處理後(欄位分割),想要是資料就是'北京北'和'VAP',然後將這樣的資料更新到後臺資料庫中。

首先,將形如'@bjb|北京北|VAP|beijingbei|bjb|0'的資料分割成六個欄位firstLetter(首字母),name(站點名),code(站點代號),pinyin(全拼),shorthand(縮寫),order(排序),建立一個Model類用於儲存資料,程式碼示例:

複製程式碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Update_Train_Code
{
    /// <summary>
    /// 站點資訊
    
/// </summary> public class Station { private string name;//站點名 public string Name { get { return name; } set { name = value; } } private string code;//縮寫 public string Code { get { return code; }
set { code = value; } } private string firstLetter;//首字母 public string FirstLetter { get { return firstLetter; } set { firstLetter = value; } } private string pinyin;// 全拼 public string Pinyin { get { return pinyin; } set { pinyin = value; } } private string shorthand;// 簡寫 public string Shorthand { get { return shorthand; } set { shorthand = value; } } private string order;// 排序 public string Order { get { return order; } set { order = value; } } } }
複製程式碼

 其次,用get請求http://dynamic.12306.cn/otsweb/js/common/station_name.js地址解析資料,將得到的資料進行快取,欄位分割處理儲存於List<Station>泛型集合中,返回list。

/// <summary> /// 獲取車站資訊 /// </summary> /// <param name="timeout"></param> /// <param name="userAgent"></param> /// <param name="cookie"></param> public static List<Station> GetStations() { CookieContainer cookieContainer = new CookieContainer(); HttpWebRequest request = WebRequest.Create(formUrl) as HttpWebRequest; request.Method = "GET"; request.KeepAlive = false; request.AllowAutoRedirect = true; request.ContentType = "application/x-www-form-urlencoded"; request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.5.21022; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)"; request.CookieContainer = cookieContainer; HttpWebResponse SendSMSResponse = (HttpWebResponse)request.GetResponse(); StreamReader SendSMSResponseStream = new StreamReader(SendSMSResponse.GetResponseStream()); string response = SendSMSResponseStream.ReadToEnd(); List<Station> list = new List<Station>(); try { var str = response; Regex stationNamesRegex = new Regex("'(?<stationNames>[^\']*?)'"); if (stationNamesRegex.IsMatch(str)) { string stationNames = stationNamesRegex.Matches(str)[0].Groups["stationNames"].Value; string[] stations = stationNames.Split(

相關推薦

GET請求12306網站連結獲取火車站代號資訊更新後臺資料庫

   http://www.cnblogs.com/litao4047/archive/2013/05/31/3110781.html 這個連結所表述的內容是,從12306網站上利用get解析地址獲取車站名和代號,獲取到的資料就是網站上的那個js檔案(資料沒

使用HTTP POST請求12306網站介面查詢火車車次API

使用12306網站提供的介面,傳入引數,解析資料,先發個連結給大家看看...    http://www.devapi.org/12306-Search-Train-Number.html 介面型別:    HTTP(POST) / UTF-8 介面返回值:    json 引數詳解:    

get請求參數為中文,參數到後臺出現亂碼(註:亂碼情況千奇百怪,這裏貼我遇到的情況)

中文 ram 轉碼 編碼 cti 請求參數 param timeout protoc 標題   參數亂碼:     String param = "...";     使用new String(param.getBytes("iso-8859-1"), "utf-8");

JAVA通過URL連結獲取視訊檔案資訊(無需下載檔案)

  最近專案碰到一個大坑:APP上需要在獲取視訊列表時就獲取視訊的時長,但早期上傳的時候資料庫都沒有儲存這個資料,所以前段時間新增一個時長欄位,在上傳時手動輸入視訊時長,但是之前庫中有上萬條資料沒這個資訊,如果這樣一條一條手動輸入,人都得瘋掉。所以誰也不提不管這破事,在這之前的視訊時長資訊就讓它空在那。最近領

資料庫隨機獲取N條記錄的SQL語句

Oracle:        select * from (select * from tableName order by dbms_random.value) where rownum < N; M

java獲取excel資料並存入資料庫

1--獲取excel檔案檔案所在路徑       由於公司的平臺框架封裝比較嚴重,獲取路徑方法可能略有不同,不必太放心上。 //獲取平臺附件配置檔案附件存放路徑 String realPath = F

js獲取當前頁面Get請求參數

cat pla length code 請求參數 col ati spl 表達 廢話不多說,直接上代碼: //獲取當前頁面的請求參數並移除左邊的? var currentSearchStr = window.location.search.replace("?","");

html之間直接get請求訪問後獲取 url的值

假如a頁面是被get的頁面  在a頁面中新增如下程式碼: var action = getParameterByUrl(window.location.toString(), "action"); var dts = getParameterByUrl(windo

Python使用flask獲取Post和get請求

@app.route('/company_qa', methods=['POST', 'GET']) def company_qa_login(): """ 公司問答的請求程式碼 :return: """ starttime = datetime.datetime.now() if re

django設定並獲取cookie/session,檔案上傳,ajax接收檔案,post/get請求及跨域請求等的方法

django設定並獲取cookie/session,檔案上傳,ajax接收檔案等的方法: views.py檔案: from django.shortcuts import render,HttpResponse,redirect import datetime import json from

Django怎麽獲取get請求裏面的參數

兩個 att sum函數 路由 aud name none get請求 寫法 獲取get請求裏面參數的兩種方法之三種寫法一,當get網址是127.0.0.1:8000/info/?id=20&s_id=30這種類型的網址時 我們在urls的路由的urlpatte

HttpClient 傳送Post Get請求例子 包含設定請求資訊獲取返回頭資訊

                package com.test.action;import java.io.IOException;import java.util.ArrayList;import java.util.List;import org.apache.commons.httpclient.De

HttpClient 傳送Post Get請求例子(包含設定請求資訊獲取返回頭資訊

package com.test.action; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.commons.httpclient.DefaultHt

解決get請求獲取中文亂碼的問題

 關鍵點<%String name = new String((request.getParameter("name")).getBytes("ISO-8859-1"),"UTF-8"); %> <!DOCTYPE html> <html> <

Get請求/Post請求與如何在Servlet獲取請求資訊——day_07

HTTP簡介 -WEB瀏覽器與WEB伺服器之間的一問一答的互動過程必須遵循一定的規則,這個規則就是HTTP協議 -HTTP是hypertext transfer protocol(超文字傳輸協議)的簡寫,它是TCP/IP協議集中的一個應用層協議,用於定義WE

Python獲取12306網站車次

可單獨獲取城市到城市的車次、出發時間、耗時時間、到達時間 ,以及餘票資訊。修改最後三行的字串執行使用。或修改為for迴圈實現批量獲取。程式碼網路獲取並加以修改。 import requests import re #關閉https證書驗證警告 requests.packa

python 用 requests傳送get請求獲取json資料

java進行一次get請求,少說都要洋洋灑灑一兩百行程式碼,建立流,發請求,解析資料,關閉流等等而python就四行業務程式碼    import requests    #請求地址    url = "https://api.global.net/datastore/v1/

Android-HttpClient-Get請求獲取網路圖片設定桌布

第一種方式使用httpclient-*.jar (需要在網上去下載httpclient-*.jar包) 把httpclient-4.5.jar/httpclient-4.4.1.jar包放入到libs裡,然後點選sync project ...才能使用httpclient-4.5.jar包 htt

node的express框架接收get/post請求時,引數獲取方式

一.接收get請求 情況一:引數是url的一部分: 1 eg:router.get('/nodeServer/dataSet/page/:name/:pageNum/:pageSize', function(request, resopnse){ 2 // 獲取引數name , pageNum

Java獲取get請求圖片資源

使用Apache的HttpClient包 import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import org.apache.http.Ht