2017-09-24 83 views
-5

我想刮特定的网站。例如,在该网站(https://www.accessdata.fda.gov/scripts/cder/cliil/index.cfm)在索引页面,当你选择一个数据字段(你可以选择国家),并在国家关键字可以选择美国它导航搜索页面(https://www.accessdata.fda.gov/scripts/cder/cliil/dsp_Search.cfm)我想下载搜索页面。我想刮它。但没有查询字符串。我可以怎么做?刮网站和检索数据或下载现有的网站文件

是否有任何解决方案,我可以在参数索引中张贴表单?

编辑:

我用的WebRequest,但它不符合我的data.Are参数显示网页是假的?

这里是我的代码

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(); 

回答

0

我不知道如何使HTTP请求与#C而是让你的需求满足后我觉得下面的信息就足够了。

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 
+0

谢谢,我尝试,但它不与数据给网页...我编辑问题和我添加我的代码问题结束。是我的代码是错误的? – user1688401

+0

没问题。为了您的考虑,在处理整个操作之前,您应该考虑两件事情。你必须在标题中使用'User-Agent',最后数据是json格式。谢谢。 – SIM