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

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();
}

最新文章

  1. Fluent interface
  2. 菜单each+hover
  3. Linux下运行jar包
  4. Hadoop Resource
  5. hdu 4405 Aeroplane chess(简单概率dp 求期望)
  6. ubuntu下如何设置主机名
  7. Spring Security(16)——基于表达式的权限控制
  8. 在2017年,如何将你的小米4刷上Windows 10 mobile?
  9. 【请求之密】payload和formData有什么不同?
  10. C语言第三次博客作业---单层循环结构
  11. SpringMVC 环境搭建(HelloWorld)
  12. Codeforces Round #417 (Div. 2)-A. Sagheer and Crossroad
  13. java序列化和反序列化中的serialVersionUID有啥用
  14. C# 最齐全的上传图片方法
  15. 【转】android IDE——通过DDMS查看app运行时所占内存情况
  16. Spark记录-Scala程序例子(函数/List/match/option/泛型/隐式转换)
  17. [LeetCode] 295. Find Median from Data Stream ☆☆☆☆☆(数据流中获取中位数)
  18. Excel操作
  19. SQLServer2008只能编辑前面200行数据
  20. Project facet jst.web.jstl has not been defined.

热门文章

  1. 单元测试工具 unitils
  2. MongoDB(二)创建更新删除文档
  3. salt-master迁移
  4. print输出带颜色的方法详解
  5. JS 100元购物卡,牙刷5元,香皂2元、洗发水15元 100元正好花完有多少种可能
  6. php libevent扩展
  7. Eclipse maven工程 Missing artifact com.sun:tools:jar:1.7.0:system 解决方法
  8. vue组件通信,点击传值,动态传值(父传子,子传父)
  9. Elasticsearch 入门 - 安装、启动和配置
  10. 导出MNIST的数据集