苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

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

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

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

查看: 3833|回复: 4

[求助] 抓取一个跳转的网站出现问题

[复制链接]
发表于 2013-12-24 13:48:41 | 显示全部楼层 |阅读模式
请先不要在IE或任务浏览中输入浏览下面这个网址:
http://www.datianxia.cc/e/action ... amp;totalnum=888888

然后直接执行我下面的代码,提示无法跳转

如果先在IE里执行一次,那是可以抓取的。非常奇怪。

HttpHelper http = new HttpHelper();
            HttpItem item = new HttpItem()
            {
           
                URL = "http://www.datianxia.cc/e/action/ListInfo/index.php?page=1classid=1&totalnum=888888",//URL     必需项
                Method = "get",//URL     可选项 默认为Get   
                IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写   
                Cookie = "",//字符串Cookie     可选项   
                Referer = "",//来源URL     可选项   
                Postdata = "",//Post数据     可选项GET时不需要写   
                Timeout = 100000,//连接超时时间     可选项默认为100000   
                ReadWriteTimeout = 30000,//写入Post数据超时时间     可选项默认为30000   
                UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统     可选项有默认值   
                ContentType = "text/html",//返回类型    可选项有默认值   
                Allowautoredirect = true,//是否根据301跳转     可选项   
                //CerPath = "d:\123.cer",//证书绝对路径     可选项不需要证书时可以不写这个参数   
                //Connectionlimit = 1024,//最大连接数     可选项 默认为1024   
            };

            HttpResult result = http.GetHtml(item);
            string html = result.Html;
            string cookie = result.Cookie;


执行上面的代码得到的不是我想要的源码不是我想要。中间又进行了跳转了一次,我设置了自动跳转为true仍无效,请求帮助。


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-12-24 13:52:13 | 显示全部楼层
[HTML] 纯文本查看 复制代码
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>信息提示</title>
<link href="/e/data/images/qcss.css" rel="stylesheet" type="text/css">
<SCRIPT language=javascript>
var secs=3;//3秒
for(i=1;i<=secs;i++) 
{ window.setTimeout("update(" + i + ")", i * 1000);} 
function update(num) 
{ 
if(num == secs) 
{ history.go(-1); } 
else 
{ } 
}
</SCRIPT>
</head>

<body>


您来自的链接不存在  <br><a href="http://www.datianxia.cc">如果您的浏览器没有自动跳转,请点击这里</a>
<br>
<br>
<br>
<br>
<br>
<br>
</body>
</html>

这是得到的Html,你看清楚了,这是定时跳转,Httphelper肯定不能让他跳转呀,又不会执行Js,浏览器是肯定会的,
所以这个你要获取这个页面然后,
得到Html代码从里面提取URl然后再去请求就行了。

 楼主| 发表于 2013-12-24 15:40:26 | 显示全部楼层
你的意思是说:
得到
您来自的链接不存在  <br><a href="http://www.datianxia.cc">如果您的浏览器没有自动跳转,请点击这里</a>
之后,我取到其中的网址"http://www.datianxia.cc",然后再重复读取一次这个网址的源码?
 楼主| 发表于 2013-12-24 15:40:53 | 显示全部楼层

你的意思是说:
得到
您来自的链接不存在  <br><a href="http://www.datianxia.cc">如果您的浏览器没有自动跳转,请点击这里</a>
之后,我取到其中的网址"http://www.datianxia.cc",然后再重复读取一次这个网址的源码?
发表于 2013-12-24 15:49:44 | 显示全部楼层
danedai 发表于 2013-12-24 15:40
你的意思是说:
得到
您来自的链接不存在  如果您的浏览器没有自动跳转,请点击这里

如果需要跳转才能获取那是这样,如果不需要你可以直接请求这个页面不需要每次得新获取
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2024-12-23 15:25

© 2014-2021

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