苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

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

HttpHelper万能框架(V2.3-含.netcore) HttpHelper官方出品,无敌框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 最牛的爬虫类,没有爬不到只有想不到 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 204|回复: 5

[站长工具] 最新百度爬虫抓取搜索结果,过安全检测

[复制链接]
发表于 2019-11-26 17:16:46 | 显示全部楼层 |阅读模式
这个不多说,最近百度更新,需要过安检

直接上代码

[C#] 纯文本查看 复制代码
HttpHelper http = new HttpHelper();
HttpItem item = new HttpItem()
{
    URL = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=sufei",//URL     必需项
    Method = "GET",//URL     可选项 默认为Get
    Timeout = 100000,//连接超时时间     可选项默认为100000
    ReadWriteTimeout = 30000,//写入Post数据超时时间     可选项默认为30000
    IsToLower = false,//得到的HTML代码是否转成小写     可选项默认转小写
    Cookie = "",//字符串Cookie     可选项
    UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统     可选项有默认值
    Accept = "text/html, application/xhtml+xml, */*",//    可选项有默认值
    ContentType = "text/html",//返回类型    可选项有默认值
    Referer ="https://www.baidu.com",//来源URL     可选项
    Allowautoredirect = False,//是否根据301跳转     可选项
    AutoRedirectCookie = False,//是否自动处理Cookie     可选项
    //CerPath = "d:\123.cer",//证书绝对路径     可选项不需要证书时可以不写这个参数
    //Connectionlimit = 1024,//最大连接数     可选项 默认为1024
    Postdata = "",//Post数据     可选项GET时不需要写
    //ProxyIp = "192.168.1.105:2020",//代理服务器ID     可选项 不需要代理 时可以不设置这三个参数
    //ProxyPwd = "123456",//代理服务器密码     可选项
    //ProxyUserName = "administrator",//代理服务器账户名     可选项
    ResultType = ResultType.String,//返回数据类型,是Byte还是String
};
item.Header.Add("Bdpagetype", " 3");//设置请求头信息(Header)
item.Header.Add("Bdqid", " 0xd30b86920004fb3f");//设置请求头信息(Header)
item.Header.Add("Cache-Control", " private");//设置请求头信息(Header)
item.Header.Add("Ckpacknum", " 2");//设置请求头信息(Header)
item.Header.Add("Ckrndstr", " 20004fb3f");//设置请求头信息(Header)
item.Header.Add("Strict-Transport-Security", " max-age=172800");//设置请求头信息(Header)
item.Header.Add("Traceid", " 1574759518274850689015207396528370285375");//设置请求头信息(Header)
item.Header.Add("Vary", " Accept-Encoding");//设置请求头信息(Header)
item.Header.Add("X-Ua-Compatible", " IE=Edge");//设置请求头信息(Header)
HttpResult result = http.GetHtml(item);
string html = result.Html;
string cookie = result.Cookie;


 楼主| 发表于 2019-11-26 17:22:52 | 显示全部楼层
默认情况 下先请求一次百度获取这些参数,然后每次请求带上即可
item.Header.Add("Bdpagetype", " 3");//设置请求头信息(Header)
item.Header.Add("Bdqid", " 0xd30b86920004fb3f");//设置请求头信息(Header)
item.Header.Add("Cache-Control", " private");//设置请求头信息(Header)
item.Header.Add("Ckpacknum", " 2");//设置请求头信息(Header)
item.Header.Add("Ckrndstr", " 20004fb3f");//设置请求头信息(Header)
item.Header.Add("Strict-Transport-Security", " max-age=172800");//设置请求头信息(Header)
item.Header.Add("Traceid", " 1574759518274850689015207396528370285375");//设置请求头信息(Header)
发表于 2019-11-26 18:02:43 | 显示全部楼层
老哥,为啥我的还是不行呢?还是返回<a href="https://wappass.baidu.com/static/captcha/tuxing.html?&amp;ak=c27bbc89afca0463650ac9bde68ebe06&amp;backurl=https%3A%2F%2Fwww.baidu.com%2Fs%3Fie%3Dutf-8%26f%3D8%26rsv_bp%3D1%26tn%3Dbaidu%26wd%3D%25E5%25AE%25B6%25E5%2585%25B7%25E5%2585%25AC%25E5%258F%25B8&amp;logid=7835993800044587352&amp;signature=91603f0b6510de7545678315cf5e64a9&amp;timestamp=1574762465">Found</a>.

附代码:HttpHelper helper = new HttpHelper();
                HttpItem item = new HttpItem();
                item = new HttpItem()
                {
                    URL = "https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&tn=baidu&wd=" + toolStripTextBox1.Text,
                    IsToLower = false,
                    //UserAgent = "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",//用户的浏览器类型,版本,操作系统     可选项有默认值
                    Accept = "text/html, application/xhtml+xml, */*",
                    ContentType = "text/html",
                    Referer = "https://www.baidu.com",
                    Allowautoredirect = false,
                    ResultType = ResultType.String,
                };
                item.Header.Add("Bdpagetype", "3");
                item.Header.Add("Bdqid", "0xd30b86920004fb3f");
                item.Header.Add("Cache-Control", "private");
                item.Header.Add("Ckpacknum", "2");
                item.Header.Add("Ckrndstr", "20004fb3f");
                item.Header.Add("Strict-Transport-Security", "max-age=172800");
                item.Header.Add("Traceid", "1574759518274850689015207396528370285375");
                item.Header.Add("Vary", "Accept-Encoding");
                item.Header.Add("X-Ua-Compatible", "IE=Edge");

                Random r = new Random();
                int index = r.Next(_agent.Count - 1);
                item.UserAgent = _agent[index];//随机获取UserAgent

                HttpResult result = helper.GetHtml(item);//获取页面内容
                string strHtml = result.Html;
发表于 2019-11-26 21:05:12 | 显示全部楼层
发表于 2019-11-29 14:32:12 | 显示全部楼层
发表于 6 天前 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

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

GMT+8, 2019-12-10 14:30

© 2017-2018

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