Well, you can actually check the network calls that are executed in order to get the CSV file. I just did that for you, but it contains a lot of parameters which you need to send in. Below are the actual parameters you need to send in:
searchArgs.orderByColumnName=
&searchArgs.initialViewArgHndlr.inputValue=County
&searchArgs.startMonthArgHndlr.inputValue=01
&searchArgs.startYearArgHndlr.inputValue=1993
&searchArgs.endMonthArgHndlr.inputValue=01
&searchArgs.endYearArgHndlr.inputValue=2013
&searchArgs.oilOrGasArgHndlr.inputValue=
&searchArgs.gasWellNoHndlr.inputValue=
&searchArgs.searchTypeHndlr.inputValue=production
&searchArgs.viewTypeHndlr.inputValue=monthlyTotals
&searchArgs.activeTabsFlagwordHndlr.inputValue=11
&searchArgs.orderByHndlr.inputValue=
&searchArgs.leaseTypeArgHndlr.inputValue=O
&searchArgs.districtCodeArgHndlr.inputValue=
&searchArgs.leaseNumberArgHndlr.inputValue=
&searchArgs.fieldNumbersArgHndlr.inputValue=
&searchArgs.fieldNamesHndlr.inputValue=
&searchArgs.operatorNumbersArgHndlr.inputValue=
&searchArgs.operatorNamesHndlr.inputValue=
&searchArgs.onShoreCountyCodeArgHndlr.inputValue=001
&searchArgs.offShoreCountyCodeArgHndlr.inputValue=
&searchArgs.leaseNameArgHndlr.inputValue=
&searchArgs.geoRegionOptionHndlr.inputValue=county
&searchArgs.statewideFlagHndlr.inputValue=
&methodToCall=generateProductionQueryReportCsv
&actionManager.recordCountHndlr.inputValue=2
&actionManager.currentIndexHndlr.inputValue=1
&actionManager.actionRcrd%5B0%5D.actionDisplayNmHndlr.inputValue=Search+Criteria
&actionManager.actionRcrd%5B0%5D.hostHndlr.inputValue=webapps2.rrc.state.tx.us%3A80
&actionManager.actionRcrd%5B0%5D.contextPathHndlr.inputValue=%2FEWA
&actionManager.actionRcrd%5B0%5D.actionHndlr.inputValue=%2FproductionQueryAction.do
&actionManager.actionRcrd%5B0%5D.actionParameterHndlr.inputValue=methodToCall
&actionManager.actionRcrd%5B0%5D.actionMethodHndlr.inputValue=unspecified
&actionManager.actionRcrd%5B0%5D.pagerParameterKeyHndlr.inputValue=
&actionManager.actionRcrd%5B0%5D.actionParametersHndlr.inputValue=
&actionManager.actionRcrd%5B0%5D.returnIndexHndlr.inputValue=0
&actionManager.actionRcrd%5B0%5D.argRcrdParameters%28searchArgs.paramValue%29=%7C1%3DCounty%7C2%3D01%7C3%3D1993%7C4%3D01%7C5%3D2013%7C8%3Dproduction%7C9%3DmonthlyTotals%7C10%3D11%7C101%3DO%7C201%3D001%7C204%3Dcounty
&actionManager.actionRcrd%5B1%5D.actionDisplayNmHndlr.inputValue=County%3A+ANDERSON
&actionManager.actionRcrd%5B1%5D.hostHndlr.inputValue=webapps2.rrc.state.tx.us%3A80
&actionManager.actionRcrd%5B1%5D.contextPathHndlr.inputValue=%2FEWA
&actionManager.actionRcrd%5B1%5D.actionHndlr.inputValue=%2FproductionQueryAction.do
&actionManager.actionRcrd%5B1%5D.actionParameterHndlr.inputValue=methodToCall
&actionManager.actionRcrd%5B1%5D.actionMethodHndlr.inputValue=search
&actionManager.actionRcrd%5B1%5D.pagerParameterKeyHndlr.inputValue=prodPager.paramValue
&actionManager.actionRcrd%5B1%5D.actionParametersHndlr.inputValue=
&actionManager.actionRcrd%5B1%5D.returnIndexHndlr.inputValue=0
&actionManager.actionRcrd%5B1%5D.argRcrdParameters%28prodPager.paramValue%29=%7C1%3D1%7C2%3D-1%7C3%3D241%7C4%3D0%7C5%3D0%7C6%3D10
&actionManager.actionRcrd%5B1%5D.argRcrdParameters%28searchArgs.paramValue%29=%7C1%3DCounty%7C2%3D01%7C3%3D1993%7C4%3D01%7C5%3D2013%7C8%3Dproduction%7C9%3DmonthlyTotals%7C10%3D11%7C101%3DO%7C201%3D001%7C204%3Dcounty
&searchArgs.startMonthArg=01
&searchArgs.startYearArg=1993
&searchArgs.endMonthArg=01
&searchArgs.endYearArg=2013
&pager.pageSize=-1
I hope for you that only the parameters prefixed with searchArgs
are important (they contain the information of the form, like the month/year/....
The actionManager
prefixed parameters contain some complicated data, you need to define them (else you get an error), but I don't know if they're actually used, so you might just leave them empty.
When executing this call, you will imediately receive the CSV file which you can probably parse using any language (look for a CSV parsing library) and insert it into a database or something else.
However, the best possibility is to look for an alternative to this source (or a public API you can access), because this is really crazy to work with, and it might change.
Example using PHP
The following code is an example in PHP retrieving the CSV (using cURL) and parsing it into an array.
<?php
/** The data */
$minMonth = '01';
$minYear = '1993';
$maxMonth = '01';
$maxYear = '2013';
$view = 'County';
$region = 'county';
$location = '001'; /** This is the county code of ANDERSON */
$ch = curl_init();
/** URL */
curl_setopt($ch, CURLOPT_URL, "http://webapps2.rrc.state.tx.us/EWA/productionQueryAction.do");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, true);
/** All these form parameters */
$data = array(
'searchArgs.orderByColumnName' => '',
'searchArgs.initialViewArgHndlr.inputValue' => $view,
'searchArgs.startMonthArgHndlr.inputValue' => $minMonth,
'searchArgs.startYearArgHndlr.inputValue' => $minYear,
'searchArgs.endMonthArgHndlr.inputValue' => $maxMonth,
'searchArgs.endYearArgHndlr.inputValue' => $maxYear,
'searchArgs.oilOrGasArgHndlr.inputValue' => '',
'searchArgs.gasWellNoHndlr.inputValue' => '',
'searchArgs.searchTypeHndlr.inputValue' => 'production',
'searchArgs.viewTypeHndlr.inputValue' => 'monthlyTotals',
'searchArgs.activeTabsFlagwordHndlr.inputValue' => '11',
'searchArgs.orderByHndlr.inputValue' => '',
'searchArgs.leaseTypeArgHndlr.inputValue' => 'O',
'searchArgs.districtCodeArgHndlr.inputValue' => '',
'searchArgs.leaseNumberArgHndlr.inputValue' => '',
'searchArgs.fieldNumbersArgHndlr.inputValue' => '',
'searchArgs.fieldNamesHndlr.inputValue' => '',
'searchArgs.operatorNumbersArgHndlr.inputValue' => '',
'searchArgs.operatorNamesHndlr.inputValue' => '',
'searchArgs.onShoreCountyCodeArgHndlr.inputValue' => $location,
'searchArgs.offShoreCountyCodeArgHndlr.inputValue' => '',
'searchArgs.leaseNameArgHndlr.inputValue' => '',
'searchArgs.geoRegionOptionHndlr.inputValue' => $region,
'searchArgs.statewideFlagHndlr.inputValue' => '',
'methodToCall' => 'generateProductionQueryReportCsv',
'actionManager.recordCountHndlr.inputValue' => '2',
'actionManager.currentIndexHndlr.inputValue' => '1',
'actionManager.actionRcrd%5B0%5D.actionDisplayNmHndlr.inputValue' => 'Search+Criteria',
'actionManager.actionRcrd%5B0%5D.hostHndlr.inputValue' => 'webapps2.rrc.state.tx.us%3A80',
'actionManager.actionRcrd%5B0%5D.contextPathHndlr.inputValue' => '%2FEWA',
'actionManager.actionRcrd%5B0%5D.actionHndlr.inputValue' => '%2FproductionQueryAction.do',
'actionManager.actionRcrd%5B0%5D.actionParameterHndlr.inputValue' => 'methodToCall',
'actionManager.actionRcrd%5B0%5D.actionMethodHndlr.inputValue' => 'unspecified',
'actionManager.actionRcrd%5B0%5D.pagerParameterKeyHndlr.inputValue' => '',
'actionManager.actionRcrd%5B0%5D.actionParametersHndlr.inputValue' => '',
'actionManager.actionRcrd%5B0%5D.returnIndexHndlr.inputValue' => '0',
'actionManager.actionRcrd%5B0%5D.argRcrdParameters%28searchArgs.paramValue%29' => '%7C1%3DCounty%7C2%3D01%7C3%3D1993%7C4%3D01%7C5%3D2013%7C8%3Dproduction%7C9%3DmonthlyTotals%7C10%3D11%7C101%3DO%7C201%3D001%7C204%3Dcounty',
'actionManager.actionRcrd%5B1%5D.actionDisplayNmHndlr.inputValue' => 'County%3A+ANDERSON',
'actionManager.actionRcrd%5B1%5D.hostHndlr.inputValue' => 'webapps2.rrc.state.tx.us%3A80',
'actionManager.actionRcrd%5B1%5D.contextPathHndlr.inputValue' => '%2FEWA',
'actionManager.actionRcrd%5B1%5D.actionHndlr.inputValue' => '%2FproductionQueryAction.do',
'actionManager.actionRcrd%5B1%5D.actionParameterHndlr.inputValue' => 'methodToCall',
'actionManager.actionRcrd%5B1%5D.actionMethodHndlr.inputValue' => 'search',
'actionManager.actionRcrd%5B1%5D.pagerParameterKeyHndlr.inputValue' => 'prodPager.paramValue',
'actionManager.actionRcrd%5B1%5D.actionParametersHndlr.inputValue' => '',
'actionManager.actionRcrd%5B1%5D.returnIndexHndlr.inputValue' => '0',
'actionManager.actionRcrd%5B1%5D.argRcrdParameters%28prodPager.paramValue%29' => '%7C1%3D1%7C2%3D-1%7C3%3D241%7C4%3D0%7C5%3D0%7C6%3D10',
'actionManager.actionRcrd%5B1%5D.argRcrdParameters%28searchArgs.paramValue%29' => '%7C1%3DCounty%7C2%3D01%7C3%3D1993%7C4%3D01%7C5%3D2013%7C8%3Dproduction%7C9%3DmonthlyTotals%7C10%3D11%7C101%3DO%7C201%3D001%7C204%3Dcounty',
'searchArgs.startMonthArg' => $minMonth,
'searchArgs.startYearArg' => $minYear,
'searchArgs.endMonthArg' => $maxMonth,
'searchArgs.endYearArg' => $maxYear,
'pager.pageSize' => '-1'
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$output = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
/** Convert CSV string to array */
$data = str_getcsv($output);
/** Print array */
print_r($data);
?>