抓取网站和检索数据或下载现有的网站文件

时间:2017-09-24 11:02:09

标签: c# asp.net web-scraping web

我想抓取特定的网站。例如,当您选择数据字段(您可以选择国家/地区)时,在索引页面中的该网站(https://www.accessdata.fda.gov/scripts/cder/cliil/index.cfm)和国家/地区关键字中,您可以选择美国导航搜索页面( https://www.accessdata.fda.gov/scripts/cder/cliil/dsp_Search.cfm)我想下载搜索页面。我想抓它。但是没有查询字符串。我怎么能这样做?

我是否可以使用参数在索引中发布表单?

编辑:

我使用webrequest但它没有显示带有数据的页面。我的参数是假的吗?

这是我的代码

   System.Net.WebRequest request1 = System.Net.WebRequest.Create("https://www.accessdata.fda.gov/scripts/cder/cliil/dsp_Search.cfm");
            var Deger1 = "{'DataField':'COUNTRY','COUNTRY':'USA','Keywords':'','Submit':'Submit'}";
            request1.Method = "POST";

              byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(Deger1);
            request1.ContentType = "text/xml";
            request1.ContentLength = byteArray.Length;
            Stream dataStream = request1.GetRequestStream();
            dataStream.Write(byteArray, 0, byteArray.Length);
            dataStream.Close();
            System.Net.WebResponse response = request1.GetResponse();
            Console.WriteLine(((System.Net.HttpWebResponse)response).StatusDescription);
            dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream, System.Text.Encoding.UTF8, true);
            string responseFromServer = reader.ReadToEnd();

            reader.Close();
            dataStream.Close();
            response.Close();

1 个答案:

答案 0 :(得分:0)

我不知道如何使用#c发出http请求,但为了满足您的要求,我认为以下信息就足够了。

1. FormData={
    'DataField':'COUNTRY','COUNTRY':'USA','Keywords':'','Submit':'Submit'
}
2. You should make a post request with the below url along with the above form data. 

"https://www.accessdata.fda.gov/scripts/cder/cliil/dsp_Search.cfm"

我用其他语言对其进行了测试,发现它有效。

顺便说一下,我通过使用以下网址在搜索字段中满足以下参数来获得以上信息:

url = "https://www.accessdata.fda.gov/scripts/cder/cliil/index.cfm"

Search Fields:

1. Country 
2. USA