(高分)大虾救命啊 !!!!!WebClient怎么抓取https,不同的是:我需要搜索一次,才可以抓取

a11377815 2007-11-08 03:06:07
<form Name="Advanced" method="POST" action="https://www.oxhp.com/cgi-bin/provider_roster/avsearch/avsearch_ch.pl">

<input type="text" name="SearchFor" value="Doctor" />
<input type="text" name="lang" value="cn" />
<input type="text" name="_DOCTYPE_TEXT" value="" />
<input type="text" name="_SPECIALTY_TEXT" value="" />
<input type="text" name="_NETWORK_TEXT" value="" />
<input type="text" name="_MILES_TEXT" value="" />
<input type="text" name="_STATE_TEXT" value="" />
<input type="text" name="_LANGUAGE_TEXT" value="" />

上面的是需要传的搜索参数,我应该怎么抓取?
...全文
280 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
a11377815 2007-11-09
  • 打赏
  • 举报
回复
不是好明白6楼是什么意思啊!
WNASP 2007-11-09
  • 打赏
  • 举报
回复
当你获取HTML的时候再用MILHTMLParser(到网上下载一个,开源的)来分析你的HTML
获取你想要的
a11377815 2007-11-09
  • 打赏
  • 举报
回复
public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy
{
public TrustAllCertificatePolicy()
{ }

public bool CheckValidationResult(ServicePoint sp,X509Certificate cert, WebRequest req, int problem)
{
return true;
}
}

protected void Page_Load(object sender, EventArgs e)
{
System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();


string backstr = "";
string param = "SearchFor=Doctor&lang=cn&_DOCTYPE_TEXT=Primary Care Physician 主治醫生/OBGYN婦科醫生&_SPECIALTY_TEXT=Pediatrics 兒科&_NETWORK_TEXT=Freedom&_MILES_TEXT=5 英哩&_STATE_TEXT=New York 紐約州&_LANGUAGE_TEXT=Any&_ZIP=11220";
byte[] bs = Encoding.ASCII.GetBytes(param);

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("https://www.oxhp.com/cgi-bin/provider_roster/avsearch/avsearch_ch.pl");
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = bs.Length;

using (Stream reqStream = req.GetRequestStream())
{
reqStream.Write(bs, 0, bs.Length);
}
using (WebResponse wr = req.GetResponse())
{
StreamReader sr = new StreamReader(wr.GetResponseStream(), System.Text.Encoding.Default);
backstr = sr.ReadToEnd();
sr.Close();
wr.Close();
}

Response.Write(backstr);
}

还是得不到东西啊!郁闷死了!
a11377815 2007-11-09
  • 打赏
  • 举报
回复
然后怎么写?小弟是新手,不懂,可以再说清楚一点吗?
jinjazz 2007-11-08
  • 打赏
  • 举报
回复
byte[] b = wb.UploadValues(new Uri("https://www.oxhp.com/cgi-bin/provider_roster/avsearch/avsearch_ch.pl "), param);
a11377815 2007-11-08
  • 打赏
  • 举报
回复
Compilation Error
Description: An error occurred during the compilation of a resource required to service this request. Please review the following specific error details and modify your source code appropriately.

Compiler Error Message: CS1502: The best overloaded method match for 'System.Uri.Uri(string, bool)' has some invalid arguments

Source Error:



Line 44: param.Add("_ZIP ", "11220");
Line 45: //...
Line 46: byte[] b = wb.UploadValues(new Uri("https://www.oxhp.com/cgi-bin/provider_roster/avsearch/avsearch_ch.pl", param));
Line 47: //...
Line 48: string result = Encoding.Default.GetString(b);


Source File: e:\project\clinic\seachSSL.aspx.cs Line: 46




出现这样的错误,不知道什么问题啊!help
jinjazz 2007-11-08
  • 打赏
  • 举报
回复
 System.Net.WebClient wb = new System.Net.WebClient();
System.Collections.Specialized.NameValueCollection param = new System.Collections.Specialized.NameValueCollection();
param.Add("SearchFor", "Doctor");
//...
byte[] b= wb.UploadValues(new Uri("https://www.oxhp.com/cgi-bin/provider_roster/avsearch/avsearch_ch.pl ",param));
//...


最好用httplook看看,WebClient 可以完全伪装成ie

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧