我如何填写网站表单并检索c#中的结果
本文关键字:结果 检索 何填写 网站 表单 | 更新日期: 2023-09-27 18:07:02
我希望我的程序能够访问一个网站,处理字符串输入并返回一些关于它的信息。我想输入两个序列,提交它们并通过程序读取结果。网址如下:
http://scansite.mit.edu/motifscan_seq.phtml如果您输入5031601作为蛋白质名称和DRNAYVWTLKGRTWKPTLVILRI作为序列,您将被重定向到结果站点。这是我希望能够与我的程序阅读的网站。关于这个问题我已经研究了很多,但是我似乎没有得到任何有用的解决方案。
谁能帮我一下吗?编辑:
我尝试用以下代码创建一个web请求(改编自链接):
WebRequest request = WebRequest.Create(
"http://scansite.mit.edu/motifscan_seq");
request.Method = "POST";
string postData = @"motif_option=all&protein_id=5031601&
sequence=DRNAYVWTLKGRTWKPTLVILRI&
stringency=High&submit=Submit Request";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteArray.Length;
Stream dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
using (WebResponse response = request.GetResponse())
using (Stream resSteam = response.GetResponseStream())
using (StreamReader sr = new StreamReader(resSteam))
File.WriteAllText("SearchResults.html", sr.ReadToEnd());
System.Diagnostics.Process.Start("SearchResults.html");
当我打开SearchResults.html时,它包含了输入蛋白质名称的原始表单站点。还没有输入序列(它是一个文本区域,而不是一个文本框)。而且还没有提交。我有什么遗漏或做错的吗?
通过将请求发送到表单标签(http://scansite.mit.edu/cgi-bin/motifscan_seq)的action属性中声明的uri来解决问题。
你的问题有点模糊,但听起来你想做的是屏幕抓取。它的基本意思是下载页面的HTML并对其进行解析以获取所需的值。
该站点接受POST
请求到以下URL:
带有以下参数:
motif_option: all
protein_id: 5031601
sequence: DRNAYVWTLKGRTWKPTLVILRI
stringency: High
submit: Submit Request
你要做的是生成一个POST
请求到URL,并传递相同的键/值对,除了你的值。这里有一些关于如何使用c#实现这一点的文档(查看页面中间的示例):
使用c#抓取HTML屏幕