C# 从网站上删除多个列表。

C# 从网站上删除多个列表。,c#,post,parameters,request,webclient,C#,Post,Parameters,Request,Webclient,我目前正在为一个显示数据表的网站开发一个网页刮板。我遇到的问题是,该网站没有在第一次搜索时按状态对我的搜索进行排序。加载时,我必须通过第二页上的下拉菜单进行操作。我加载第一页的方式是使用我认为是WebClient POST请求的方式。我得到了正确的html响应,可以解析它,但我想加载更过滤的搜索,但是当我将它与chrome developers选项卡中看到的html进行比较时,我得到的html是不正确的 这是我的密码 // The website I'm looking at.

我目前正在为一个显示数据表的网站开发一个网页刮板。我遇到的问题是,该网站没有在第一次搜索时按状态对我的搜索进行排序。加载时,我必须通过第二页上的下拉菜单进行操作。我加载第一页的方式是使用我认为是WebClient POST请求的方式。我得到了正确的html响应,可以解析它,但我想加载更过滤的搜索,但是当我将它与chrome developers选项卡中看到的html进行比较时,我得到的html是不正确的

这是我的密码

    // The website I'm looking at.
    public string url = "https://www.missingmoney.com/Main/Search.cfm";

    // The POST requests for the working search, but doesn't filter by states
    public string myPara1 = "hJava=Y&SearchFirstName=Jacob&SearchLastName=Smith&HomeState=MN&frontpage=1&GO.x=19&GO.y=18&GO=Go";
    // The POST request that also filters by state, but doesn't return the correct html that I would need to parse
    public string myPara2 = "hJava=Y&SearchLocation=1&SearchFirstName=Jacob&SearchMiddleName=&SearchLastName=Smith&SearchCity=&SearchStateID=MN&GO.x=17&GO.y=14&GO=Go";

    // I save the two html responses in these
    public string htmlResult1;
    public string htmlResult2;

    public void LoadHtml(string firstName, string lastName)
    {
        using (WebClient client = new WebClient())
        {
            client.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
            htmlResult1 = client.UploadString(url, myPara1);
            htmlResult2 = client.UploadString(url, myPara2);

        }
    }
我只是想弄明白为什么我第一次传入参数时它能工作,而第二次传入时却不能


谢谢你花时间看这个

我只是忘了将cookie添加到新的搜索中。使用谷歌chrome或fiddler,你可以看到网络流量。我所需要做的就是添加

client.Headers.Add(HttpRequestHeader.Cookie, "cookie");
在我的代码上传之前。这样做给了我正确的html响应,现在我可以解析数据了


@德洛普卡特指出了这一点,归功于那个人

“我得到的html不正确”是什么意思?我得到的html没有解析所需的表,我建议使用
Selenium
而不是
WebClient
@JacobLoncar,可能是当您第一次访问Internet浏览器中的页面时,您收到了cookie,并且这些cookie被附加到了帖子中。如果是这样的话,并且你没有在你的C#代码中附加这些cookie,你就不会得到同样的结果。在internet浏览器中打开“检查工具”并转到“网络”选项卡,捕获一篇有效的帖子,并确保您发送的是C#代码相同的帖子。@derloopkat谢谢您提供的信息,我将试一试!