以前就尝试过研究了一些爬虫程序,也找过一些爬虫抓取软件,效果不是很好。 今天正好一个培训的网友给了我一个视频,正好研究下,收获颇丰。感谢那位哥们~

1.首先讨论一下抓取一个页面

这里我写了模仿写了一个控制台程序,直接看代码即可:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text; namespace 爬虫
{
class Program
{
static void Main(string[] args)
{
string rec=getContent("http://ryj.shuai7boy.cn/");
Console.WriteLine(rec);
Console.ReadKey();
}
public static string getContent(string strUrl)
{
try
{
string rl;
Uri u = new Uri(strUrl);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(strUrl);
request.ContentType = "application/x-www-form-urlencoded";
HttpWebResponse Response = (HttpWebResponse)request.GetResponse();
Stream resStream = Response.GetResponseStream();
StreamReader sr = new StreamReader(resStream, Encoding.GetEncoding("utf-8"));
StringBuilder sb = new StringBuilder();
while ((rl=sr.ReadLine())!=null)
{
sb.Append(rl);
}
return sb.ToString(); }
catch(Exception e)
{
Console.WriteLine("can't open url:"+strUrl);
throw e;
}
} } }

上面运行后就直接把网页的Html抓取到显示到控制台了。

这个的原理就是直接请求读取的文件流,然后对文件流进行一行一行遍历。

尝试过的朋友可能会对这个编码产生质疑。首先要说的是utf-8是国际标准,gb2312是针对汉语中国自己制定的。

如果像上面使用gb2312导出我们会看到乱码,但打开网页不会。 但当上面改为utf-8时,导出的内容我们能看懂,但打开网页就出现乱码了。这个时候解决办法就是手动将网页里面的utf-8改为gb2312。

至于这是什么原因?编码之间是怎么转换的我还没深入研究,后续讨论。

还可以将上面代码改为直接写入文件:

  static void Main(string[] args)
{
string rec=getContent("http://www.baidu.com/");
string strPath = @"E:\c盘搬家\Desktop\1.html";
File.WriteAllText(strPath, rec);
Console.WriteLine("ok");
Console.ReadKey();
}

C#---爬虫抓取系列的更多相关文章

  1. 爬虫技术 -- 进阶学习(七)简单爬虫抓取示例(附c#代码)

    这是我的第一个爬虫代码...算是一份测试版的代码.大牛大神别喷... 通过给定一个初始的地址startPiont然后对网页进行捕捉,然后通过正则表达式对网址进行匹配. List<string&g ...

  2. Node.js爬虫抓取数据 -- HTML 实体编码处理办法

    cheerio DOM化并解析的时候 1.假如使用了 .text()方法,则一般不会有html实体编码的问题出现 2.如果使用了 .html()方法,则很多情况下(多数是非英文的时候)都会出现,这时, ...

  3. python 爬虫抓取心得

    quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quo ...

  4. 爬虫技术(四)-- 简单爬虫抓取示例(附c#代码)

    这是我的第一个爬虫代码...算是一份测试版的代码.大牛大神别喷... 通过给定一个初始的地址startPiont然后对网页进行捕捉,然后通过正则表达式对网址进行匹配. List<string&g ...

  5. 如何利用Python网络爬虫抓取微信朋友圈的动态(上)

    今天小编给大家分享一下如何利用Python网络爬虫抓取微信朋友圈的动态信息,实际上如果单独的去爬取朋友圈的话,难度会非常大,因为微信没有提供向网易云音乐这样的API接口,所以很容易找不到门.不过不要慌 ...

  6. Java 实现 HttpClients+jsoup,Jsoup,htmlunit,Headless Chrome 爬虫抓取数据

    最近整理一下手头上搞过的一些爬虫,有HttpClients+jsoup,Jsoup,htmlunit,HeadlessChrome 一,HttpClients+jsoup,这是第一代比较low,很快就 ...

  7. Python3简单爬虫抓取网页图片

    现在网上有很多python2写的爬虫抓取网页图片的实例,但不适用新手(新手都使用python3环境,不兼容python2), 所以我用Python3的语法写了一个简单抓取网页图片的实例,希望能够帮助到 ...

  8. PID控制器的应用:控制网络爬虫抓取速度

    一.初识PID控制器 冬天乡下人喜欢烤火取暖,常见的情形就是四人围着麻将桌,桌底放一盆碳火.有人觉得火不够大,那加点木炭吧,还不够,再加点.片刻之后,又觉得火太大,脚都快被烤熟了,那就取出一些木碳…… ...

  9. Python爬虫----抓取豆瓣电影Top250

    有了上次利用python爬虫抓取糗事百科的经验,这次自己动手写了个爬虫抓取豆瓣电影Top250的简要信息. 1.观察url 首先观察一下网址的结构 http://movie.douban.com/to ...

随机推荐

  1. 【SQL】SELECT 语句

    1.1 SELECT基本语法: Select * |{[distinct]colum|expression [alias],…} from table; 1.2 查询当前用户所有在用的表及视图: HR ...

  2. Hoj_平方和与立方和

    平方和与立方和 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Sub ...

  3. ASP.NET 微信公众平台模板消息推送功能完整开发

    最近公众平台的用户提出了新需求,他们希望当收到新的邮件或者日程的时候,公众平台能主动推送一条提醒给用户.看了看平台提供的接口,似乎只有[模板消息]能尽量满足这一需求,但不得不说微信提供的实例太少,而且 ...

  4. Boost多线程-替换MFC线程

           Mfc的多线程看起来简单,可以把线程直接压入向量,由系统类似进行调配,其实在内存的处理问题上留下了漏洞.在新线程里面载入大量流,会导致内存泄露. 方便之处:直接使用结构体传入函数参数,供 ...

  5. .NET 请求和接收FormData的值

    <body> <div> <!-- 上传单个文件---> <form action="/Home/UpdateFile2" enctype ...

  6. 遍历及过滤 first(), last() 和 eq() filter() 和 not()

    三个最基本的过滤方法是:first(), last() 和 eq(),它们允许您基于其在一组元素中的位置来选择一个特定的元素.其他过滤方法,比如 filter() 和 not() 允许您选取匹配或不匹 ...

  7. java 常用API 包装 数据转换

    package com.oracel.demo01; public class Sjzh { // 将基本数据类型转字符串 public static void main(String[] args) ...

  8. 「BZOJ3339」Rmq Problem(5366)

    题目描述 输入 输出 样例输入 7 5 0 2 1 0 1 3 2 1 3 2 3 1 4 3 6 2 7 提示 这个题说来也挺有意思的 当时集训的时候遇到了一道类似的题,但是题意与此不同,我太菜了, ...

  9. MYSQL存储过程初步认知

    存储过程(Stored Procedure): 一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行. 优点:将重 ...

  10. Python3爬虫环境配置

    一.包管理工具Anaconda安装 1.安装直接在官网下载最新版本的 https://www.continuum.io/downloads 2.配置环境变量PATH:C:\Users\Administ ...