日期:2014-05-18  浏览次数:20770 次

如何自动引发网页上的选择按钮?
有一个网页:
http://stock.finance.sina.com.cn/hkstock/finance/01398.html
网页中每一张报表右边都有一个“报表类型”的下拉选择按钮

现在想通过程序(用webbrowser控件或其他什么的)自动引发“报表类型”的下拉选择按钮
选择值为“年报”的数据,然后再将年报的数据抓取出来;抓取的程序已经有了,现在就是不知道该该怎么自动引发这些按钮

C# code
 <em class="rt">报表类型:<select class="fgrey" style="width:100px;" interface="getFinanceStandardForjs?symbol=$symbol&financeStanderd=" table="tableGetFinanceStandard" onchange="selectData(this);">
                <option value="all" >全部</option>
                <option value="zero" >年报</option>
                <option value="1" >中报</option>
                <option value="2" >一季报</option>
                <option value="3" >三季报</option>
            </select></em>



(注意,这个问题和翻页的问题不同,翻页可通过分析网址的规律来解决,但是这个网页里选择了报表类型后,网页上的数据变了,但是网址超链接却没有任何变化)

恳请各位高手赐教呀

------解决方案--------------------
webbroswer

C# code

 foreach (HtmlElement he in webBrowser1.Document.All)
   {
         if (找到该下拉框)        {
            he.InvokeMember("onchange");//找到下拉框,模拟事件
         }
    }

------解决方案--------------------
我估计数据已经传过来了,你在网页中找到你需要的数据,然后抓
------解决方案--------------------
http://www.google.com.hk/search?q=asp%2Cnet+getpostbackreffrence&rls=com.microsoft:en-US:IE-Address&ie=UTF-8&oe=UTF-8&sourceid=ie7#q=asp.net+getpostbackreference&hl=zh-CN&newwindow=1&safe=strict&rls=com.microsoft:en-US:IE-Address&prmd=imvnsfd&source=lnt&tbs=lr:lang_1zh-CN%7Clang_1zh-TW&lr=lang_zh-CN%7Clang_zh-TW&sa=X&ei=1U8uUM_LD6eTiQealYHICA&ved=0CEkQpwUoAQ&bav=on.2,or.r_gc.r_pw.&fp=57c60ed584195686&biw=1440&bih=844
------解决方案--------------------
网址的链接没有变化,可能是因为这个http request是一个post请求,url没有变,但是post的数据变了。
其实用JS也可以模拟web页面上按钮的点击的,只是个建议。