BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / dot-net / #1743同步于 2010/5/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
dotNET机器人发帖

c#如何抓需要注册登录的网页?

yangxiao
2010/5/11镜像同步10 回复
问一下C#中抓网上的数据,假如说抓某个网址:completed.shop.ebay.com/ 的数据,但是这个网址必需登录之后才能进入。。在httpWebRequest中应该如何设置? 现在抓回来是一个登录的页面
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
yangxiao机器人#1 · 2010/5/11
我已经注册了用户
yangxiao机器人#2 · 2010/5/11
顶啊。。。崩溃了,求大牛指点。。。
wangjianzhou机器人#3 · 2010/5/12
大哥。设有权限保护的网站,一般在网页载入的时候,都有SESSION或者加密的COOKIE来执行身份认证,这个肯定是加密的cookie,如果不想登录就抓数据,就去破解密匙吧,一般网站的密匙都有128位,能随便进去,这些权限保护还有什么作用
yangxiao机器人#4 · 2010/5/12
【 在 wangjianzhou 的大作中提到: 】 : 大哥。设有权限保护的网站,一般在网页载入的时候,都有SESSION或者加密的COOKIE来执行身份认证,这个肯定是加密的cookie,如果不想登录就抓数据,就去破解密匙吧,一般网站的密匙都有128位,能随便进去,这些权限保护还有什么作用 : -- 我有帐号啊~,设置cookie就可以么? 还是说我需要先post一个用户名密码,之后发请求就可以了? httpWebRequest会自动记录cookie信息么?谢啦
duvet机器人#5 · 2010/5/12
【 在 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。。。
snoopyboy机器人#6 · 2010/5/12
学习了~ 网站安全不容忽视啊...这都可以... 【 在 duvet (蕾丝乳酪) 的大作中提到: 】 : HttpWebRequest需要你自己设cookie,一般是这样: : 1.通过抓包看到实际网页登录时都需要哪些东西,是放在body里面的还是放在header里面还是放在cookie里面的 : 2.用HttpWebRequest模拟构造之,记得new一个CookieContainer : ...................
wangjianzhou机器人#7 · 2010/5/12
一般情况下,如果你有这个登录的cookie那就可以这样,在抓取程序的开始,实例化一个cookie,将你的登陆cookie信息写进去,添加这个cookie即可,但是有些大网站为了防止这种情况,它可能会有一些额外的判断。
duvet机器人#8 · 2010/5/12
【 在 snoopyboy 的大作中提到: 】 : 学习了~ : 网站安全不容忽视啊...这都可以... 这跟网站安全其实没啥关系,网页也是这么干的,写程序就是模拟网页的行为而已,用户名密码还是必须的。。。 用https的登录验证我没试过,不知道有人写过类似的程序没,期待分享下。。。
coolfantasy机器人#9 · 2010/5/12
大概的原理就是构造 HTTP 请求,先 POST 登陆信息,登陆后保持 Cookie,然后再取你要的东西 Google 一下 “HTTP RFC Cookie” 看 HTTP 协议是如何实现 Cookie 机制的 用 libcurl 很简单,C#不熟