如何通过一些参数获取网站内容?

时间:2011-04-25 19:52:49

标签: c# asp.net httpwebrequest watin

我正在使用WATIN(我正在使用2天......)来获取任何网站的内容:

Deault.aspx:

<body>
    <form id="form1" runat="server">
    <div>
    <asp:TextBox ID="some_textbox" runat="server"> </asp:TextBox>
    <asp:Button ID="submit_button" runat="server" Text="search" 
            onclick="submit_button_Click" />
    <asp:Label ID="lblMsg" runat="server" Text="" ></asp:Label>
    </div>
    </form>
</body>

我的客户代码来自Watin(http://watin.org/documentation/getting-started/)


    private void button1_Click(object sender, EventArgs e)
        {
            //launch a new IE browser
            using (FireFox browser = new FireFox("http://localhost:3411/Default.aspx"))
            {
                //now we have access to the browser object
                //filling a textbox and clicking a button is as easy as
                browser.TextField(Find.ByName("some_textbox")).TypeText("foobar");
                browser.Button(Find.ByName("submit_button")).Click();

                //we can also access the full html of the page to perform regex matches, scrapes, etc...
                string fullPageSource = browser.Html;

            }
        }

我有两个问题:
1)我不喜欢在网络浏览器中打开它必须跑回地面。因为我会在20-30页的一个事件中搜索一些数据。我不会监视我的网页,每件事都必须跑回地面 2)我正在写文本框名称按钮名称或whatelse。我不知道textboxname或搜索按钮名称,因为我将搜索亚马逊的一些产品。 我需要一些技巧如何进行价格比较,如http://www.pricegrabber.com/ WATIN是个好主意还是你有任何httprequest dll或方法?

1 个答案:

答案 0 :(得分:2)

Watin旨在以与用户相同的方式驱动Web浏览器。如果您不想打开Web浏览器,Watin和Watir都不是您想要做的有效解决方案。 (除了合法性问题)。

您可能希望使用其他方法来发出HTTP请求,然后解析返回的HTML,一旦您获得了Amazon的书面许可,即可通过数据收集工具访问其网站,因为这样做没有许可是违反其使用条件的。