返回信息流问一下C#中抓网上的数据,假如说抓某个网址:completed.shop.ebay.com/
的数据,但是这个网址必需登录之后才能进入。。在httpWebRequest中应该如何设置?
现在抓回来是一个登录的页面
这是一条镜像帖。来源:北邮人论坛 / dot-net / #1743同步于 2010/5/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖
c#如何抓需要注册登录的网页?
yangxiao
2010/5/11镜像同步10 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
大哥。设有权限保护的网站,一般在网页载入的时候,都有SESSION或者加密的COOKIE来执行身份认证,这个肯定是加密的cookie,如果不想登录就抓数据,就去破解密匙吧,一般网站的密匙都有128位,能随便进去,这些权限保护还有什么作用
【 在 wangjianzhou 的大作中提到: 】
: 大哥。设有权限保护的网站,一般在网页载入的时候,都有SESSION或者加密的COOKIE来执行身份认证,这个肯定是加密的cookie,如果不想登录就抓数据,就去破解密匙吧,一般网站的密匙都有128位,能随便进去,这些权限保护还有什么作用
: --
我有帐号啊~,设置cookie就可以么?
还是说我需要先post一个用户名密码,之后发请求就可以了?
httpWebRequest会自动记录cookie信息么?谢啦
【 在 yangxiao 的大作中提到: 】
: 问一下C#中抓网上的数据,假如说抓某个网址:completed.shop.ebay.com/
: 的数据,但是这个网址必需登录之后才能进入。。在httpWebRequest中应该如何设置?
: 现在抓回来是一个登录的页面
: ...................
HttpWebRequest需要你自己设cookie,一般是这样:
1.通过抓包看到实际网页登录时都需要哪些东西,是放在body里面的还是放在header里面还是放在cookie里面的
2.用HttpWebRequest模拟构造之,记得new一个CookieContainer
3.GetResponse之后,从Cookies里面取出对应的验证用cookie,然后添加到其他需要验证的HttpWebRequest的CookieContainer里面
这种方法比较麻烦。。。要简单的话,用WebBrowser控件比较简单。。。查找网页上的表单,然后设置INPUT标签里面的value,再对登录按扭InvokeMember("click")即可。。。这样WebBrowser就自动获得了网页给你设置的Cookie。。。
学习了~
网站安全不容忽视啊...这都可以...
【 在 duvet (蕾丝乳酪) 的大作中提到: 】
: HttpWebRequest需要你自己设cookie,一般是这样:
: 1.通过抓包看到实际网页登录时都需要哪些东西,是放在body里面的还是放在header里面还是放在cookie里面的
: 2.用HttpWebRequest模拟构造之,记得new一个CookieContainer
: ...................
一般情况下,如果你有这个登录的cookie那就可以这样,在抓取程序的开始,实例化一个cookie,将你的登陆cookie信息写进去,添加这个cookie即可,但是有些大网站为了防止这种情况,它可能会有一些额外的判断。
【 在 snoopyboy 的大作中提到: 】
: 学习了~
: 网站安全不容忽视啊...这都可以...
这跟网站安全其实没啥关系,网页也是这么干的,写程序就是模拟网页的行为而已,用户名密码还是必须的。。。
用https的登录验证我没试过,不知道有人写过类似的程序没,期待分享下。。。
大概的原理就是构造 HTTP 请求,先 POST 登陆信息,登陆后保持 Cookie,然后再取你要的东西
Google 一下 “HTTP RFC Cookie”
看 HTTP 协议是如何实现 Cookie 机制的
用 libcurl 很简单,C#不熟