我一直在寻找一个月 - 大约30天:/ - 试图解决这个问题。没有什么是最新的解决我的问题。
我有一个外部(由他人制作)网站,有资金信息。正文包含form
个select
个元素和input
按钮元素,所有这些都位于<table>
<tr>
<td>
个分区内,如下例所示
当按下<tr>
按钮时,最后一个表button1
分部之一会更新基金信息部分,这是表单的目的:显示每日值资金,选择单一日期。
...
<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>
...
我有一些自动化功能-e.e. Matlab URLREAD
和URLREAD2
,CURL
等等,以便处理 GET 和 POST 来电,但我无法制作这项工作。
在浏览器中,放置:
http://www.example.com/function.php?fund1=f1&year1=2014&month1=08&day1=21
没有显示任何内容。同样的事情通过其他方式发生。
任何能帮助我了解如何实现自动化的人?提前谢谢。
答案 0 :(得分:0)
谢谢菲尔......你给出了问题的关键!...
最后,正确的 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
数字是参数对短语的长度,最重要的是,参数对位于底部。
另请注意,所有这些表元素都不会影响后调用。
最后,在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