第一篇随笔:用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")
下面是代码:
Public Function GetHttpContent(url As String) As String
Try
Dim req As HttpWebRequest = HttpWebRequest.CreateHttp(url), resp As HttpWebResponse, sol$
With req
.UserAgent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36"
.Accept = "*/*"
.Method = "GET"
.Timeout =
.Headers.Add("accept-encoding", " gzip, deflate")
End With
resp = req.GetResponse
Select Case resp.ContentEncoding.ToLower
Case "gzip"
Using z As New GZipStream(resp.GetResponseStream, CompressionMode.Decompress)
Using sr As New StreamReader(z, Encoding.UTF8)
sol = sr.ReadToEnd
End Using
End Using
Exit Select
Case "deflate"
Using z As New DeflateStream(resp.GetResponseStream, CompressionMode.Decompress)
Using sr As New StreamReader(z, Encoding.UTF8)
sol = sr.ReadToEnd
End Using
End Using
Exit Select
Case Else
Using sr As New StreamReader(resp.GetResponseStream, Encoding.UTF8)
sol = sr.ReadToEnd
End Using
Exit Select
End Select
Return sol
Catch ex As Exception
Return ""
End Try
End Function
(本人水平有限,代码有不完善的地方欢迎指出
第一篇随笔:用VB.NET搞点简单事情(1)的更多相关文章
- 入住cnblogs第一篇随笔 Hello, world!
在网上搜索计算机参考资料时经常看到各位大神的博客,甚是神往.今天我也在这里安家,记录自己的学习过程,也同各位共勉. 第一篇随笔,就用来测试一下这里的文本编辑器吧. //The C language # ...
- 第一篇随笔 - Hello world!
第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello world! 第一篇随笔 - Hello wo ...
- Hello World ! 第一篇随笔
Hello World ! 第一篇随笔 /* * Language: C++ * Code Name: Hello World ! * @author Metak */ #include <io ...
- linux-0.11分析:boot文件 bootsect.s 第一篇随笔
boot文件 bootsect.s 第一篇随笔 参考 [github这个博主的][ https://github.com/sunym1993/flash-linux0.11-talk ] bootse ...
- 新年伊始,.net菜鸟入院的第一篇随笔
学习.net有半年了,大二一年都是微软校园的负责人,但是因为根本没有系统的学习过编程的知识,所以一直都是活动负责人的身份,忙忙碌碌也没有什么收获,大三一狠心就退了,想能够踏踏实实的敲敲代码,手上的学习 ...
- 【tee小白的第一篇随笔】keystone代码略读
武大信安在读,最近在自学Risc-v架构的可信执行环境. (实验报告多半是为了交差.临时起意写写博客,分享一些自己读代码的心得理解.) 本篇内容由队和我友总结而成,如有错误欢迎指正交流. keysto ...
- 第一篇随笔!!!THE FIRST BLOOD!!!
注册成功,哈哈 以后就要在这扎窝了,要坚持记录下去,关于生活,关于学习. 选了个皮肤 darkgreen,不错,简洁舒服,喜欢. 好,差不多了,感觉没什么可说的了...==
- 博客里的第一篇随笔!QWQ
这里是一个信息蒟蒻,开始自己的博客之旅!!QWQQQQ
- 第一篇随笔, 正在做 ESP32 , STM32 , 树莓派 RaspberryPi 的创客工具
先随便写写一些思路, 以后再整理. 这段时间笔者做了一些硬件开发, 领悟了一些事情. 1 - 在常规创客的角度上, 硬件开发所需的知识面比较广, 非常广, 但不算太深. 2 - 发现硬件开发由于其特殊 ...
随机推荐
- spf13-vim 显示neocomplete requires ...th Lua support
安装spf13-vim的时候下载了许多插件,neocomplete应该是比较重要的一个,毕竟自动补全.但是在使用时却一直有:neocomplete requires ...th Lua support ...
- 《Java数据结构》链表结构(单向链表,双向链表)
单向链表(单链表)是链表的一种,其特点是链表的链接方向是单向的,对链表的访问要通过顺序读取从头部开始:链表是使用指针进行构造的列表:又称为结点列表,因为链表是由一个个结点组装起来的:其中每个结点都有指 ...
- appium+java(八)获取Toast内容信息
前言 Appium中很经典的问题了,在两年前也就是2017年3月6号07:22分,我才看到appium1.6.3版本的发布,更新内容为Ios上可以实现Toast的获取,而Windows也就是安卓端,还 ...
- 北京国际机场T3行李运维平台开发记录
说明 该项目是一个后台管理型网站项目,供北京国际机场T3航站楼行李调度运维部门使用,开发时间一个半月,我负责所有的前端开发.后端开发.API接口文档设计与编写.服务部署和交付. 整个网站具备的功能有: ...
- C#Protected和多态(虚方法)
Protected 在基类中定义后,能被派生类调用,但是不能被其他类调用. virtual 在基类中定义后,在派生类中能被重写. using System; using System.Collecti ...
- NPOI 设置下拉列表
HSSFWorkbook workbook = new HSSFWorkbook();//创建工作簿 ISheet sheet = workbook.CreateSheet();//创建sheet页 ...
- MSSQL - 最佳实践 - 使用SSL加密连接
MSSQL - 最佳实践 - 使用SSL加密连接 author: 风移 摘要 在SQL Server安全系列专题月报分享中,往期我们已经陆续分享了:如何使用对称密钥实现SQL Server列加密技术. ...
- AI行业精选日报_人工智能(12·18)
百度Apollo升级自动驾驶平台,发布车路协同.智能车联两大平台 12 月 18 日消息,Apollo 发布了全球首个点到点城市自动驾驶开放能力.自动驾驶云.新一代智能交通解决方案.小度车载 2020 ...
- SQL Server启动/关闭xp_cmdshell
==>启用xp_cmdshell USE master RECONFIGURE WITH OVERRIDE RECONFIGURE WITH OVERRIDE RECONFIGURE WITH ...
- html5的 history模式和hash模式
直观区别 hash 带一个# history 没有# 各自特点 hash: 仅 hash 符号之前的内容会被包含在请求中,**因此对于后端来说,即使没有做到对路由的全覆盖,也不会返回 404 错误.* ...