第一篇随笔:用VB.NET搞点简单事情(1)

网络上能搜索到的爬虫文章大多是用python做的,也有少部分是C#做的(小声:所以用VB.NET也可以做爬虫.本文写的是第一步:获取网页)

使用代码前先imports以下内容

Imports System.IO, System.IO.Compression, System.Text, System.Net

写程序前先开浏览器(我用的Chrome),随便上个网页,F12看下header,粘下来useragent备用,也可以粘下accept,cookie等(在本文中用不到

用httpwebrequest建立请求,用httpwebresponse得到响应体.然后考虑下压缩的问题(imports System.IO.Compression就是解决这个的)

最后得到真正的返回流,streamreader读取之,然后网页的http代码就搞下来了.用这种方法可以搞定编码为UTF-8的网页对于编码是GB2312或GBK的需有改动:使用streamreader时第二个参数改为Encoding.GetEncoding("gbk")

下面是代码:

 1 Public Function GetHttpContent(url As String) As String
 2         Try
 3             Dim req As HttpWebRequest = HttpWebRequest.CreateHttp(url), resp As HttpWebResponse, sol$
 4             With req
 5                 .UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
 6                 .Accept = "*/*"
 7                 .Method = "GET"
 8                 .Timeout = 300000
 9                 .Headers.Add("accept-encoding", " gzip, deflate")
10             End With
11             resp = req.GetResponse
12             Select Case resp.ContentEncoding.ToLower
13                 Case "gzip"
14                     Using z As New GZipStream(resp.GetResponseStream, CompressionMode.Decompress)
15                         Using sr As New StreamReader(z, Encoding.UTF8)
16                             sol = sr.ReadToEnd
17                         End Using
18                     End Using
19                     Exit Select
20                 Case "deflate"
21                     Using z As New DeflateStream(resp.GetResponseStream, CompressionMode.Decompress)
22                         Using sr As New StreamReader(z, Encoding.UTF8)
23                             sol = sr.ReadToEnd
24                         End Using
25                     End Using
26                     Exit Select
27                 Case Else
28                     Using sr As New StreamReader(resp.GetResponseStream, Encoding.UTF8)
29                         sol = sr.ReadToEnd
30                     End Using
31                     Exit Select
32             End Select
33             Return sol
34         Catch ex As Exception
35             Return ""
36         End Try
37     End Function

(本人水平有限,代码有不完善的地方欢迎指出

原文地址:https://www.cnblogs.com/woshilxcdexuesheng/p/11414764.html

时间: 2024-12-10 19:01:04

第一篇随笔:用VB.NET搞点简单事情(1)的相关文章

第一篇随笔,果真还是要注意细节。

学习Java以来第一篇随笔,写一写初学Socket编程中容易碰到的一个问题.照着教材上的例子敲了下面这段单线程网络通信的代码: 这段代码应该是初学Socket编程都要敲的一段,逻辑还是比较简单的.但是一开始我的TCPServer类和TCPClient类运行后,在控制台无法打印出两者通过流交互的信息,在这里卡了很久,在网上查找了一下原因,基本确定了应该是输入流或者输出流阻塞了.但是试了很久还是没有解决问题.后来偶然发现了BufferedReader类的实例方法readLine()是在读到换行符才返

我的第一篇随笔

我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔我的第一篇随笔   .myfollow a:hover { opacity: 1; } .myfollow i { font-size: 36px; } #div_digg { width: 60px; /* position: fixed; right: 0; bottom: 0;*/ margin: 0; z-index: 1000; } .diggit

第一篇随笔 - Hello world!

第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! (滑稽) 原文地址:https://www.cnblogs.com/YJZoier/p/9310783.html

我的第一篇随笔-------吹起启程之风

this is my first blog 目前的我只会C的基本语法和C++的STL, 一共写了差不多5000到6000行的代码了吧, 现在的我主要的精力都放在算法与数据结构的学习上,我写博客的目的,不仅是为了使自己对所学的知识掌握的更加透彻,更是为了反思自己,总结经验并把我的经验传播出去, 目前的我所存在的问题: 1.知识面过窄.一直主要在搞算法,因此,编程语法的学习被忽视了 2.学习效率不高.一直在输入知识,却从未输出过自己的知识,缺乏一些标准化的流程,将自己的内隐知识转化成外隐知识,做不到

我的第一篇博客 —— 用 js 和 css 简单实现瀑布流布局

一个拖延症晚期患者的自述: 注册了博客快一个月了,终于要迎来我的第一篇博客了哈哈哈!!! 刚注册的时候,满脑子要频繁更新,扩充自己的知识库,一到真正落实,就不得不为懒惰屈服,还好有了学习计划,以后应该会每周一更(不更当我没说).当然了,肯定是希望被更多人看到,帮助到大家,如果没人看的话就当作是自己的积累与记录吧! 还有,我目前工作是前端工程师,还是一名刚入行不久的菜鸟哈哈哈!!!现在主要目标是先把前端知识巩固好,再逐步往全栈领域发展(毕竟装13是我一生的职责). 所以,请各位大佬们多多指教,如果

新年伊始,.net菜鸟入院的第一篇随笔

学习.net有半年了,大二一年都是微软校园的负责人,但是因为根本没有系统的学习过编程的知识,所以一直都是活动负责人的身份,忙忙碌碌也没有什么收获,大三一狠心就退了,想能够踏踏实实的敲敲代码,手上的学习资料很多,不想因为那些无聊的活动耽误自己的学习.现在学习了也有半年了,c#,ado.net,html,css,js,jQuery这些基础知识都已经学习完毕了,下个阶段就是把目前刚刚结束的jQuery写一篇总结,然后开始入手我的第一个三层项目. 三月十号开学学校有一个招聘会,我现在有点儿想去试试但是又

毕业2年,unity3d游戏开发2个月,第一篇随笔

今天是个值得纪念的日子.因为: 人生第一次通宵加班了,开通博客了,毕业刚好2年了,来上海2个月了. 欧了,说点什么吧(- o -)~zZ 一. [西安的日子]   大学过得很普通很普通,没什么波澜起伏的经历(额,我就不说是浑浑噩噩了,还是打算来电正能量吧@[email protected]).一句话就是——也是顺利毕业了,挂过科,还好有个证.就是毕业后,还觉着没玩好&没学好. 哦对了,在西安上的学,在西安开始的人生第一份工作. 大三去了个还算规模比较大的金融行业的软件公司实习,算是真正上的第一份

LINUX设备驱动开发详解----第一篇随笔

1,软件的设计宗旨呢,是高内聚,低耦合.其意思是一个驱动程序里面,尽量是自己把事情都干完,别跟其他模块或驱动牵扯太多.不然出问题的时候,就不好排查,当然这样也利于移植,只要搞清楚了驱动程序里面的代码,那换个平台,也变得轻松. 2,驱动是沟通硬件和应用的桥梁.无操作系统下的驱动一般是由一个h文件和c文件组成.h文件里面是一些结构体的定义以及提供给外部调用的函数声明,c文件就是这些函数的具体实现.无操作系统的软件结构是这样的:一个无限循环里,对设备中断的检测或轮询,并处理. 应用工程师在写代码的时候

我的第一篇随笔,写的不好还请见谅- -|

各位女士们,先生们,你们好.感谢您白忙之中浏览我的博客.鄙人去年毕业于湖南的某所高校,学的机械电子工程,工作一年(与所学专业相关),实在提不起兴趣.于今年五月份发出的第一句呐喊:Hello World!.从此踏进了IT之路,尽管大学里面也接触到了C语言(其实只是冰山一角啦),现在发现我之前可能学了一个假的C语言- -,现在的我也没有学C的想法,感觉C语言是最牛逼的编程语言. 毫无悬念的告诉大家,我学的是python,至于为什么是python(这个得去问龟叔),不瞒你说,我在看C语言教程的时候,人