获取页面的网址

时间:2013-02-18 14:02:38

标签: c# html-agility-pack

我用它来导航到一个网站

doc = web.Load("http://google.com/search?btnI=1&q=[my keyword]") //I'm Feeling Lucky

然后我需要导航网站的网址...我怎么能得到它?

4 个答案:

答案 0 :(得分:1)

您可以使用HtmlWeb.ResponseUri属性获取实际响应请求的Internet资源的URI。

一个例子 - 谷歌搜索“cookies”:

var web = new HtmlWeb();
var doc = web.Load("http://google.com/search?btnI=1&q=cookies");
var responseUrl = web.ResponseUri;

获取http://en.wikipedia.org/wiki/HTTP_cookie

答案 1 :(得分:0)

您可以通过以下方式获取当前浏览器的网址:

string url = HttpContext.Current.Request.Url.AbsoluteUri;

答案 2 :(得分:0)

看起来Sam1可能已经为您提供了一个或两个实例的正确答案(我没有HTML Agility Pack的实际经验)。

话虽如此,如果您打算使用keywords向Google发出大量电话,以便您可以检索到最高结果(即“我感觉幸运”结果),那么我强烈建议您使用Google的自定义搜索API(https://developers.google.com/custom-search/v1/overview)。

如果您使用此API提取JSON结果,它将使用更少的带宽。

API的使用仅允许每天100次免费查询。这可能属于您的应用程序要求,但也可能不是。如果您有办法,我建议您支付谷歌,如果您打算进行数以千计的查询,我会付款。

答案 3 :(得分:0)

这里有两点需要注意。首先 - 在没有“www”的上述网址中使用“http://google.com”会强制301重定向到“http://www.google.com”,因此您应该包含www以保持简单。

第二个是打开URL(使用www)执行302重定向。目标位于响应标头内。因此,如果您能够收到302响应,那么您可以在将其发送给您之前获取Google将其发送给您的网址。

以下是第一个请求的响应和请求标头,其中Google执行301重定向到www域。

回复标题
Cache-Control public,max-age = 2592000
内容长度244
Content-Type text / html;字符集= UTF-8
2013年2月18日星期一,格林威治标准时间14:14:40 2013年3月20日星期三,格林威治标准时间14:14:40 位置http://www.google.com/search?btnI=1&q=html5
服务器gws
X-Frame-Options SAMEORIGIN
X-XSS-Protection 1;模式=块

请求标题
接受text / html,application / xhtml + xml,application / xml; q = 0.9, / ; q = 0.8
接受编码gzip,deflate
Accept-Language en-US,en; q = 0.5
连接保持活着
Cookie PREF = ID = 5d01155d00a8d706:U = 49fab5927df1f8ad:FF = 0:TM = 1359732743:LM = 1360874099:S = byw-1-fgfbcRWdPN; NID = 67 = NpFNjRkjTFtyrcYPE-pQeJiMFEgWMWdyVMVpbYATZySlsw63Hz4FCw2Tcr4tynhAhyq1vnuPqmdFBOC65Nd-048ZxrgP_HVtKbVCe7psi-G2aMvsOUbiBl1xYks2xK2K
DNT 1
主持人google.com
用户代理Mozilla / 5.0(Windows NT 6.2; WOW64; rv:18.0)Gecko / 20100101 Firefox / 18.0

302的响应/请求标头将我带到目标页面。您可以看到返回目标URL。我把它加在副本中。

回复标题
缓存控制私有
内容长度231
Content-Type text / html;字符集= UTF-8
日期星期一,2013年2月18日14:14:41 GMT
位置 http://en.wikipedia.org/wiki/HTML5
服务器gws
X-Frame-Options SAMEORIGIN
X-XSS-Protection 1;模式=块

请求标题
接受text / html,application / xhtml + xml,application / xml; q = 0.9, / ; q = 0.8
接受编码gzip,deflate
Accept-Language en-US,en; q = 0.5
连接保持活着
Cookie PREF = ID = 5d01155d00a8d706:U = 49fab5927df1f8ad:FF = 0:TM = 1359732743:LM = 1360874099:S = byw-1-fgfbcRWdPN; NID = 67 = NpFNjRkjTFtyrcYPE-pQeJiMFEgWMWdyVMVpbYATZySlsw63Hz4FCw2Tcr4tynhAhyq1vnuPqmdFBOC65Nd-048ZxrgP_HVtKbVCe7psi-G2aMvsOUbiBl1xYks2xK2K
DNT 1
主持www.google.com
用户代理Mozilla / 5.0(Windows NT 6.2; WOW64; rv:18.0)Gecko / 20100101 Firefox / 18.0