c#编程细节(四)

爬虫简要概述
///
/// 1 爬虫,爬虫攻防
/// 2 下载html,log4net
/// 3 xpath解析html,获取数据和深度抓取
/// 4 惰性加载、Ajax加载数据、VUE数据绑定(O(∩_∩)0)
/// 5 不一样的属性和ajax数据的获取
/// 6 多线程抓取
///
/// 爬虫:是一个自动提取网页的程序
/// url开始–分析获取数据&找到url–递归下去–结束
/// 下载html–解析获取数据–数据保存
/// 数据为王:抓小说数据,做个内容站;
/// 电影/动漫下载站
/// 抓图片
/// 政府的公开招标数据,每天汇集这些数据
/// 。。。。
/// 爬虫的正义性问题:不违法;不问自取谓之偷;
/// 爬虫的攻防:robots协议—君子协定(360流氓),道德防线
/// 请求检测header–爬虫去都模拟一下
/// 用户登录–请求的时候带上cookie
/// 爬虫频率高限制IP(黑名单/返回个验证码)—多个ip(adsl拨号/168伪装IP/代理IP)
/// 验证码–有开源组件做图片识别/打码平台(如果有兴趣尝试对接,老师有账号)
/// 大招:数据js动态加载;转图片;js收集用户操作,然后提交;用户控件(可以收集更多信息)
/// 都是可以搞定的,道高一尺魔高一丈,浏览器的请求不能拒绝
///

第一步,获取html

HttpWebRequest request = HttpWebRequest.Create(url) as HttpWebRequest;//模拟请求
//然后就是包装请求
request.ContentType = "text/html; charset=utf-8";// "text/html;charset=gbk";// 
request.Host = "www.jd.com";
//request.Headers.Add("Accept-Encoding", "gzip, deflate, sdch");
//request.Headers.Add("Referer", "http://list.yhd.com/c0-0/b/a-s1-v0-p1-price-d0-f0-m1-rt0-pid-mid0-kiphone/");
Encoding enc = Encoding.UTF8;
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)//发起请求
                {
                    if (response.StatusCode != HttpStatusCode.OK)
                    {
                        logger.Warn(string.Format("抓取{0}地址返回失败,response.StatusCode为{1}", url, response.StatusCode));
                    }
                    else
                    {
                        try
                        {
                            StreamReader sr = new StreamReader(response.GetResponseStream(), enc);
                            html = sr.ReadToEnd();//读取数据
                            sr.Close();
                        }
                        catch (Exception ex)
                        {
                            logger.Error(string.Format($"DownloadHtml抓取{url}失败"), ex);
                            html = null;
                        }
                    }
                }

分析数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值