c httpclient抓取网页(做POST登陆程序,用httpclient得到登陆页面的时候出问题了)

优采云 发布时间: 2021-09-08 22:16

  c httpclient抓取网页(做POST登陆程序,用httpclient得到登陆页面的时候出问题了)

  我今天在做POST登录程序,使用httpclient获取登录页面时出现问题。页面代码如下:

  < !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> function setCookie(c_name, value, expiredays) { var exdate = new Date(); exdate.setDate(exdate.getDate()+expiredays); document.cookie = c_name + "=" + escape(value) + ((expiredays==null) ? "" : ";expires=" + exdate.toGMTString()) + ";path=/"; } function getHostUri() { var loc = document.location; return loc.toString(); } setCookie('YPF8827340282Jdskjhfiw_928937459182JAX666', '115.173.104.54', 10); setCookie('DOAReferrer', document.referrer, 10); location.href = getHostUri(); < body>< noscript>This site requires JavaScript and Cookies to be enabled. Please change your browser settings or upgrade your browser.

  此站点需要启用 JavaScript 和 Cookie。请更改您的浏览器设置或升级您的浏览器。

  一开始以为这句话是浏览器能检测到JS是否在运行,然后我的POST登录就不行了,只能考虑用IE插件来模拟登录了。

  但是查了资料,有人说,“服务器无法判断你是否开启了JS,如果你判断一个cookie,它应该在首页给你发一个cookie,然后判断其他的是否有cookie页面,所以你必须从 COOKIE 开始,而不是用户代理”

  现在放心了。这个解决方案还是很简单的。就是模拟JS,将页面代码中的COOKIE添加到httpclient,然后再次访问登录页面,得到正常代码。

  问题终于解决了。它在于第一次捕获数据时返回的数据。根据资料,只要给HttpClient设置cookie,就可以再次捕获了。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线