《C# 爬虫 破境之道》:第一境 爬虫原理 — 第二节:WebRequest

本节主要来介绍一下,在C#中制造爬虫,最为常见、常用、实用的基础类 ------ WebRequest、WebResponse。

先来看一个示例 [1.2.1]:

 1     using System;
 2     using System.IO;
 3     using System.Net;
 4     using System.Text;
 5
 6     class Program
 7     {
 8         static void Main(string[] args)
 9         {
10             var request = WebRequest.Create(@"https://www.cnblogs.com/mikecheers/p/12090487.html");
11             request.Method = "GET";
12             using (var response = request.GetResponse())
13             {
14                 using (var stream = response.GetResponseStream())
15                 {
16                     using (var reader = new StreamReader(stream, new UTF8Encoding(false)))
17                     {
18                         var content = reader.ReadToEnd();
19                         Console.WriteLine(content);
20                     }
21                 }
22                 response.Close();
23             }
24             request.Abort();
25             Console.ReadLine();
26         }
27     }

运行以上代码,我们能看到类似如下的输出:

{省略若干html代码}
<div id="post_body" class="blogpost-body ">
    <p>  在构建本章节内容的时候,笔者也在想一个问题,究竟什么样的采集器框架,才能算得上是一个&ldquo;全能&rdquo;的呢?就我自己以往项目经历而言,可以归纳以下几个大的分类:</p>
<ol>
<li>根据通讯协议:HTTP的、HTTPS的、TCP的、UDP的;</li>
<li>根据数据类型:纯文本的、json的、压缩包的、图片的、视频的;</li>
<li>根据更新周期:不定期更新的、定期更新的、增量更新的;</li>
<li>根据数据来源:单一数据源、多重数据源、多重数据源混合;</li>
<li>根据采集点分布:单机的,集群的;</li>
<li>根据反爬虫策略:控制频率的,使用代理的,使用特定UA的;</li>
<li>根据配置:可配置的,不可配置的;</li>
</ol>
<p>  以上的分类,也有可能不够全面,不过应该可以涵盖主流数据采集的分类了。</p>
<p>  为了方便阐述一个爬虫的工作原理,我们从上面找到一条最简单路径,来进行阐述(偷奸耍滑?非也,大道化简,万变不离其宗:)</p>
<p>  OK,一个小目标,单机、单一数据源、定期更新、纯文本、HTTP的爬虫,来一只。</p>
<p>&nbsp;</p>
<p style="margin-left: 30px;">在第一境的后面各节中,我们就来逐步实现这个小目标,同时,也来探究一下其中的原理。只有掌握了这些,才能通过继续扩展,衍生出强大的爬虫:)</p>
</div>
{省略若干html代码}

一只爬虫小幼崽儿,就如此轻松的诞生了~

示例 [1.2.1]中,最核心的部分,就是使用了本节的主题、两个基础类:WebRequest和WebResponse。

从名称上就可以看出,这两个类是针对Web资源的操作类。下面,将针对这两个类来做针对性的细究。

有点儿事儿,未完待续……

原文地址:https://www.cnblogs.com/mikecheers/p/12090678.html

时间: 2024-10-10 14:25:54

《C# 爬虫 破境之道》:第一境 爬虫原理 — 第二节:WebRequest的相关文章

网络爬虫入门:你的第一个爬虫项目(requests库)

0.采用requests库 虽然urllib库应用也很广泛,而且作为Python自带的库无需安装,但是大部分的现在python爬虫都应用requests库来处理复杂的http请求.requests库语法上简洁明了,使用上简单易懂,而且正逐步成为大多数网络爬取的标准. 1. requests库的安装采用pip安装方式,在cmd界面输入: pip install requests 小编推荐一个学python的学习qun 491308659 验证码:南烛无论你是大牛还是小白,是想转行还是想入行都可以来

《C# 爬虫 破境之道》:第一境 爬虫原理 — 第五节:数据流处理的那些事儿

为什么说到数据流了呢,因为上一节中介绍了一下异步发送请求.同样,在数据流的处理上,C#也为我们提供几个有用的异步处理方法.而且,爬虫这生物,处理数据流是基础本能,比较重要.本着这个原则,就聊一聊吧. 我们经常使用到的流有文件流.内存流.网络流,爬虫与这三种流都有着密不可分的联系,可以联想以下这些场景: 当我们采集的数据,是一个压缩包或者照片,那么要存储它们到硬盘上,就需要使用到文件流了: 当我们采集的数据,是经过GZip等压缩算法压缩过的,那么要解压它,就需要使用到内存流了: 当我们的爬虫运行起

《C# 爬虫 破境之道》:第二境 爬虫应用 — 第一节:HTTP协议数据采集

首先欢迎您来到本书的第二境,本境,我们将全力打造一个实际生产环境可用的爬虫应用了.虽然只是刚开始,虽然路漫漫其修远,不过还是有点小鸡冻:P 本境打算针对几大派生类做进一步深耕,包括与应用的结合.对比它们之间的区别.综合共性.封装.One-By-One. System.IO.Packaging.PackWebRequest System.Net.FileWebRequest System.Net.FtpWebRequest System.Net.HttpWebRequest 第一节,我们先来说说最

《C# 爬虫 破境之道》:第一境 爬虫原理 — 第一节:整体思路

在构建本章节内容的时候,笔者也在想一个问题,究竟什么样的采集器框架,才能算得上是一个“全能”的呢?就我自己以往项目经历而言,可以归纳以下几个大的分类: 根据通讯协议:HTTP的.HTTPS的.TCP的.UDP的: 根据数据类型:纯文本的.json的.压缩包的.图片的.视频的: 根据更新周期:不定期更新的.定期更新的.增量更新的: 根据数据来源:单一数据源.多重数据源.多重数据源混合: 根据采集点分布:单机的,集群的: 根据反爬虫策略:控制频率的,使用代理的,使用特定UA的: 根据配置:可配置的,

《C# 爬虫 破境之道》:概述

第一节:写作本书的目的 关于笔者 张晓亭(Mike Cheers),1982年出生,内蒙古辽阔的大草原是我的故乡. 没有高学历,没有侃侃而谈的高谈阔论,拥有的就是那一份对技术的执著,对自我价值的追求. 我是谁,其实并不重要,我是高级开发.我是架构师.我是技术经理,这些都是我,跟各位没有半毛钱关系.最重要的是,我能给读者带来什么.接下来的日子里,就看看本书能给各位带来什么惊喜,也许到最后,你都不会记得我的名字,没有关系,相信我,那并不重要. 关于本书 本书是<破境之道>系列技术丛书中的一部分,将

《C# GDI+ 破境之道》:第一境 GDI+基础 —— 第三节:画圆形

有了上一节画矩形的基础,画圆形就不要太轻松+EZ:)所以,本节在画边线及填充上,就不做过多的讲解了,关注一下画“随机椭圆”.“正圆”.“路径填充”的具体实现就好.与画矩形相比较,画椭圆与之完全一致,没有任何特别之处. 在画矩形时,我们使用: System.Drawing.Graphics.DrawRectangle(Brush brush, Rectangle rect); System.Drawing.Graphics.FillRectangle(Brush brush, Rectangle

《ASP.NET MVC 5 破境之道》:第一境 ASP.Net MVC5项目初探 &mdash; 第二节:MVC5项目结构

第一境 ASP.Net MVC5项目初探 第一节:运行第一个MVC5项目 第二节:MVC5项目结构 第三节:View层简单改造 第四节:打造首页面 第二节:MVC5项目结构 接下来,我们来看看,VS为我们自动创建的项目,是什么样子的? 可以通过菜单中[View]->[Solution Explorer]项来打开解决方案资源管理器.这是一个树形结构的视图,根节点是解决方案,解决方案节点下,就是一个一个的项目了,目前,我们的解决方案里只有一个项目(HonorShop.Web). 接下来,展开(Hon

二维码已死?谁将是互联网+下的破局之道

原文标题:二维码已死?谁将是互联网+下的破局之道 随着科技的进步,互联网+和工业4.0的进程,增强现实和虚拟现实将会得到前所未有爆发性的增长,并将引领下一代互联网的走向,甚至取代目前人人离不开的手机.这已成为业内人士的共识,然而VR/AR的发展是否真如想象中的美呢? 黑科技大热!你到底抓住几分发展重心? 以智能手机的快速普及过程来看,硬件.内容和网络这三大基石成为信息革命的关键点,同样AR/VR亦是.随着第五代移动通信技术(5G)频繁进入大众视野并布局,其超过4G千倍的网速将能提供更大的容量,同

程序员修炼之道第一章读后感

首先我读了序言,明白了这本书可能现在还是读不懂,但是书中的有些知识可能会帮助我以后开发软件少走点弯路, 所以,可能我现在还不太懂,但是我一定会好好阅读,尽量多理解书中的一些经验和内容,这是我对自己读这本书的要求. 求. 接着我读了第一章的内容,虽然第一章篇幅不多,但整体读下来还是收获很多的.在第一章的一开始,就教会了我做一 个做一个程序员的原则,那就是诚实和负责任.如果你做错了某些事,承认它,并给出补救的选择,不要把责任推卸给别人. 更不要找各种各样的借口.不要说事情做不到,而要说能够做什么来挽