C# 爬网/抓取基于搜索表单的网页

C# 爬网/抓取基于搜索表单的网页,c#,web-crawler,web-scraping,C#,Web Crawler,Web Scraping,我想抓取/刮取一个有表单的网页 准确地说,下面是URL 问题是,我想进行搜索并将结果保存在网页中 我的搜索字符串将始终提供一个唯一的页面,因此结果计数不会有问题 那边的搜索不在URL上搜索(例如,google搜索URL包含要搜索的参数)。如何从起始页(如上所述)搜索并获得结果页 请告诉我一些想法。 我使用的是C#/.NET。如果您查看该页面上的表单,您会注意到它们使用的是POST方法,而不是GET方法。我相信您知道,GET表单将其参数作为URL的一部分传递,例如mypage?arg1=valu

我想抓取/刮取一个有表单的网页 准确地说,下面是URL

问题是,我想进行搜索并将结果保存在网页中

  • 我的搜索字符串将始终提供一个唯一的页面,因此结果计数不会有问题
  • 那边的搜索不在URL上搜索(例如,google搜索URL包含要搜索的参数)。如何从起始页(如上所述)搜索并获得结果页
  • 请告诉我一些想法。
    我使用的是C#/.NET。

    如果您查看该页面上的表单,您会注意到它们使用的是POST方法,而不是GET方法。我相信您知道,GET表单将其参数作为URL的一部分传递,例如
    mypage?arg1=value&arg2=value

    但是,对于POST请求,需要将参数作为请求主体传递。它采用相同的格式,只是传递方式不同。为此,请使用类似以下代码:

    HttpRequest myRequest = (HttpRequest)WebRequest.Create(theURL);
    myRequest.Method = "post";
    
    using(TextWriter body = new StreamWriter(myRequest.GetRequestStream())) {
        body.Write("arg1=value1&arg2=value2");
    }
    
    WebResponse theResponse = myRequest.GetResponse();
    
    //do stuff with the response
    

    别忘了你还需要逃避争论等等。

    可能的欺骗:太棒了,成功了,我第一次尝试时犯了错误;我使用了主页,我应该以form.action为目标。谢谢