http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 5195|回复: 6

[HttpHelper] 登陆成功后抓取多页面数据失败

[复制链接]
发表于 2018-5-24 09:13:42 | 显示全部楼层 |阅读模式
我需要抓取一个需要登陆的网站数据, 其登陆机制与http://www.cnblogs.com/wenjiang/p/3203403.html所述网站非常类似,根据该文的提示,已经可以成功登陆,登陆以后第一次抓取本想用get来实现但该站不允许(用浏览器是可以的),只好用post,设置如下:
[C#] 纯文本查看 复制代码
item = new HttpItem()
                {
                    URL = uri,
                    Method = "post",
                    KeepAlive = true,
                    Postdata = poststr,//poststr包含用户名和密码,加上__VIEWSTATE,[color=#00ff][font=&quot][size=12px]__EVENTVALIDATION等隐含参数[/size][/font][/color]
                    Cookie = cookie,
                    ContentType = "application/x-www-form-urlencoded",
                    Allowautoredirect = false,
                };


此次可以抓到第一页数据,但同样设置抓取下一页数据时被强制中断,提示“The underlying connection was closed: A connection that was expected to be kept alive was closed by the server.”, 不知为什么会出现这样的问题?莫非需要更新cookie或poststr或者是其他设置不对?如果像浏览器那样用get来抓取数据的话,又应该如何设置?




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2018-5-24 16:59:36 | 显示全部楼层
连接失效了
 楼主| 发表于 2018-5-24 21:23:01 | 显示全部楼层

谢谢苏版主关注。我明白连接被强制中断,但不明白登陆后第一次抓取成功后为什么第二次却被拒绝的原因。我想肯定是我的request里的信息不完整或不正确。请告诉我登陆后有关信息处理的流程,譬如cookie的更新,还有如何获取其它完整信息的步骤,这样我好去找到问题的根源。我用的httphelper的版本号是1.4.7,它对cookie信息的提取与最新版有不同之处吗?

谢谢!
发表于 2018-5-25 10:27:32 | 显示全部楼层
抓包看一下有什么变化
发表于 2018-5-25 11:15:05 | 显示全部楼层
url发出来呗
 楼主| 发表于 2018-5-26 03:00:24 | 显示全部楼层
该网站多数的内容用浏览器就能看,当然有些付费的内容要登陆。我要抓取的内容是可以直接浏览的,前面用get爬虫来爬被拒, 故想到可能需要登陆来爬,但如上所述,也半途而废了。

可我咽不下这口气,于是拼命谷哥,终于有新发现。我印象中“"application/x-www-form-urlencoded"多用于post之用,网上有篇文章提到也可以结合get来用,于是想不妨试试,第一次get时cookie="",不用postdata,哈哈终于爬到了,好兆头,接着用第一次拿到的cookie,又悲剧了,经过排查,发现只用到其中一个小cookie就可以继续爬其它分页了。

这还得谢谢谷哥和那名无名作者的提示。
 楼主| 发表于 2018-5-26 03:05:14 | 显示全部楼层
也谢谢苏堂主的心血。对了,不知如何更新原贴的标题,加上一句已解决?
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-22 13:57

© 2014-2021

快速回复 返回顶部 返回列表