This site requires JavaScript and Cookies to be enabled的解决方法
来源:互联网 发布:域名后缀排行榜 编辑:程序博客网 时间:2024/06/10 04:08
今天在做POST登陆程序,在用httpclient得到登陆页面的时候出问题了,页面代码如下:
< !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <script type="text/javascript"> 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(); </script></head>< body>< noscript>This site requires JavaScript and Cookies to be enabled. Please change your browser settings or upgrade your browser.</noscript></body></html>
This site requires JavaScript and Cookies to be enabled. Please change your browser settings or upgrade your browser.
开始以为这一句是浏览器可以监测到JS是否运行,那我这个POST登陆就做不成了,只能考虑用IE插件模拟登陆了。
但查资料,有人说“服务器是没法判断你是否启用JS的。而判断COOKIE的话,应该是在首页的时候会发给你一个COOKIE,并且在其他页面判断是否有COOKIE,所以就得在COOKIE上入手,而不是User-agent”
这下就放心了。这个解决方法还是很简单的,就是模拟JS,给httpclient加上页面代码里的COOKIE后,再次访问登陆页面就可以得到正常的代码了。
问题终于解决了,就在于第一次抓取数据时,如上返回的数据,根据该数据,只要给HttpClient设置好Cookie,再重新抓取就可以了
- This site requires JavaScript and Cookies to be enabled的解决方法
- VS2010编译错: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403...的解决方法
- VS2010编译错误 #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403的解决方法
- VS2010编译错误: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403的解决方法 .
- VS2010编译错: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403...的解决方法
- VS2010编译错: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403...的解决方法
- VS2010编译错误:This file requires _WIN32_WINNT to be #defined at least to 0x0403...的解决方法
- VS2010编译错: #error : This file requires _WIN32_WINNT to be #defined at least to 0x0403...的解决方法
- 【已解决】instant run requires xxx to be enabled
- 当Androidstudio出现Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled 时的解决办法
- VMware: ESXi requires the Execute Disable/No Execute CPU feature to be enabled
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.解决方
- Error running app: Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- Android Studio Error : Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled
- Instant Run requires 'Tools | Android | Enable ADB integration' to be enabled.
- JavaScript之典型高阶函数
- ”对于不返回任何键列信息的 SelectCommand,不支持 UpdateCommand 的动态 SQL 生成“解决办法
- 一只特立独行的猪--当年明月,坚持的力量
- 有时间一天看一次
- Oracle学习笔记-实例
- This site requires JavaScript and Cookies to be enabled的解决方法
- 杂谈
- nohup命令参考
- http://archive.cert.uni-stuttgart.de/openpgp/2003/08/msg00014.html
- jqGrid 学习 总结
- 学而思上市背后的站群秘密
- Java反编译工具的使用
- Oracle并行执行简介
- 10步让你成为更优秀的程序员