我一直在寻找一个月-大约30天:/-试图解决这个问题。最新的东西都不能解决我的问题。
我有一个外部(由他人制作)网站,有资金信息。主体包括一个form
和一些select
元素,以及一个input
按钮元素,它们都在<table>
<tr>
<td>
中,如下例所示。
当按下button1
按钮时,最后一个表<tr>
部分更新Funds Information部分,这是该表单的目的:通过选择单个日期显示基金的每日值。
...
<form name="funds" method="post" action="function.php?fund=f1">
<table>
<tr>
<td>
<select name="year1" size="1" class="class1">
<option label="2014" value="2014" >2014</option>
...
</select>
<select name="month1" size="1" class="class1">
<option label="Jan" value="01" >Jan</option>
...
</select>
<select name="day1" size="1" class="class1" >
<option label="01" value="01" >01</option>
...
</select>
<input type="submit" value="Submit" name="button1" class="class1" >
</td>
</tr>
<tr>
...
Funds Information
...
</tr>
</table>
</form>
...
我有一些自动化功能-即Matlab URLREAD
和URLREAD2
, CURL
等-为了处理GET和POST调用,但我无法使此工作。
http://www.example.com/function.php?fund1=f1&year1=2014&month1=08&day1=21
没有显示。同样的事情也会通过其他方式发生。
谁能帮助我了解如何自动化这个?
谢谢Phil....你说出了问题的关键!
最后,正确的POST调用,例如使用cURL
,如下:
curl -X POST -d "year1=2014&month1=08&day1=21&btn=Submit" "http://www.example.com/function.php?fund=f1" -o data.html
在给定的设置中实现POST方法的正确语法,并获得data.html
文件中资金的正确数据。
通过使用像Nirsoft SmartSniff这样的嗅探器-考虑到所有这些无痛的过程,我完全推荐-可以很容易地检测POST调用参数,如下所示:
POST function.php?fund=f1 HTTP/1.1
Host: www.example.com
Connection: keep-alive
Content-Length: 39
Cache-Control: max-age=0
Accept: ...text/html info...
Origin: http://www.example.com
User-Agent: ...browser info...
Content-Type: application/x-www-form-urlencoded
Referer: http://www.example.com/function.php?fund=f1
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8,es;q=0.6
Cookie: ...cookie data...
year1=2014&month1=08&day1=04&btn=Submit
请注意,Content-Length
号是参数对短语的长度,最重要的是,参数对位于底部。
还要注意,所有这些表元素对post调用没有任何影响。
最后,在URLREAD
下,调用如下:
url='http://www.example.com/function.php?fund=f1';
urlstring={'year1','2014','month1','08','day1','17','btn','Submit'};
data=urlread(url,'post',urlstring);
并获取data
变量上的正确数据。
最诚挚的问候,
hypfco