HttpWebRequest采集

2024-01-16 15:58
文章标签 采集 httpwebrequest

本文主要是介绍HttpWebRequest采集,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

其实web的采集就是要模仿出一个浏览器出来去访问http服务器,将获取到的html代码解析出来。

     在C#中有多个方法来实现HTML的request,可以使用WebClient,httpwebrequest还可以使用webbrowser;

 

这里只说使用httpwebrequest的实现。

    这里在采集上还要有一个技巧,有些网站的URL规则可能根本就不需求你先来采集分页的页面就能直接采集你想要的内容。如很多个网站都是采用ID来显示最后的路径,例:http://www.aaaa.com/a/show.php?id=111111

 

   这样的采集就是直接访问URL就是,总之一句话,只有先取到了想要采集的页面URL才能取到想要的东西(相当的废话。。。)

不多说,先来代码

C#代码   收藏代码
  1.  public abstract class WebControler  
  2.     {  
  3.         #region ConstString  
  4.         protected string sUserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";  
  5.         protected string sContentType = "application/x-www-form-urlencoded";  
  6.         protected string sRequestEncoding = "utf-8";  
  7.         protected string sResponseEncoding = "utf-8";  
  8.   
  9.         protected CookieContainer _cookieContainer = null;  
  10.         #endregion  
  11.         /// <summary>  
  12.         /// 了类中去继承,根据不同网站的验证方式实现登陆验证  
  13.         /// 以获取用户唯一标识的cookie  
  14.         /// </summary>  
  15.         protected virtual void CheckLogin()  
  16.         {  
  17.             _cookieContainer = new CookieContainer();  
  18.         }  
  19.   
  20.         /// <summary>  
  21.         /// 读取访问URL所返回的HTML字符串  
  22.         /// </summary>  
  23.         /// <param name="url"></param>  
  24.         /// <returns></returns>  
  25.         public static string GetHtmlFromUrl(string url)  
  26.         {  
  27.             CheckLogin() ;  
  28.             WebRequest request = WebRequest.Create(url);  
  29.             HttpWebRequest httpRequest = request as HttpWebRequest;  
  30.             if (httpRequest == null)  
  31.             {  
  32.                 throw new ApplicationException(  
  33.                string.Format("Invalid url string: {0}", url)  
  34.                );  
  35.             }  
  36.             //有些网站加入了限制,只有先从首页或验证页面访问才能访问,一般都记录到cookie中  
  37.            //这里就是将验证后的cookie容器赋给采集的client  
  38.             httpRequest.CookieContainer = _cookieContainer;  
  39.             httpRequest.UserAgent = sUserAgent;  
  40.             httpRequest.Accept = "*/*";  
  41.             httpRequest.Headers.Add("Accept-Language""zh-cn");  
  42.             httpRequest.KeepAlive = true;  
  43.             httpRequest.Timeout = 10000;  
  44.             httpRequest.Method = "GET";  
  45.   
  46.             HttpWebResponse response = (HttpWebResponse)httpRequest.GetResponse();  
  47.             string sResponse = string.Empty;  
  48.             if (response.StatusCode == HttpStatusCode.OK)  
  49.             {  
  50.                 using (StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8")))  
  51.                 {  
  52.                     sResponse = reader.ReadToEnd();  
  53.                     reader.Close();  
  54.                 }  
  55.             }  
  56.             response.Close();  
  57.             return sResponse;  
  58.         }  
  59.     }   

    如果碰到要验证的网站抓取,只要先继承下这个类,将CheckLogin()方法重写就是

    如果是可以直接采集的网站,一个循环就去采吧,将返回的字符串再自己解析,取出自己有用的数据即可。

    对于html的解析可以参考Smglreader


这篇关于HttpWebRequest采集的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/613122

相关文章

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

Python 爬虫入门 - 基础数据采集

Python网络爬虫是一种强大且灵活的工具,用于从互联网上自动化地获取和处理数据。无论你是数据科学家、市场分析师,还是一个想要深入了解互联网数据的开发者,掌握网络爬虫技术都将为你打开一扇通向丰富数据资源的大门。 在本教程中,我们将从基本概念入手,逐步深入了解如何构建和优化网络爬虫,涵盖从发送请求、解析网页结构到保存数据的全过程,并讨论如何应对常见的反爬虫机制。通过本教程,你将能够构建有效的网络爬

Python 爬虫入门 - 基础数据采集流程拓展

在网络爬虫的世界里,数据就是一切。通过爬虫技术,你可以自动化地收集各种类型的公开数据,从文本和图片到复杂的结构化信息,这些数据为各类分析和应用提供了基础。 本教程将引导你深入了解爬虫可以采集的数据种类,如何有效地获取这些数据,并探讨如何使用代理服务来规避限制与增强爬虫的灵活性。无论是初学者还是有经验的开发者,这些知识都将帮助你在网络数据采集中更加游刃有余。 文章目录 可采集的数据基本操作

景联文科技:专业图像采集服务,助力智能图像分析

景联文科技是专业数据服务公司,致力于为人工智能企业提供从数据采集、清洗到标注的全流程解决方案。协助客户解决AI开发过程中数据处理环节的关键问题,助力企业实现智能化转型。 1.多样化的图像采集服务 景联文科技提供多样化的图像采集服务,涵盖不同应用场景和需求: •高分辨率图像采集:适用于高质量图像需求,如医学影像、工业检测等。 •实时图像采集:适用于需要实时处理的应用场景,如安防监

大隈设备采集

大隈(OKUMA)荣一在名古屋东区成立自己的私人公司,开始制造、销售制面机械。下面是社长的一些介绍:我司自1898年生产·销售制面机开始创业以来,秉承若所需之物世间尚无,必不妥协,独自创造的“破土创新”精神,并将其一脉相承,于1904年开始进行机床的生产。自创业以来,历经120余年,从未间断对先进技术和产品的开发。1963年,作为日本机床制造商,首次自主研发出数控装置“OSP”,利

【Android 多媒体应用】使用MediaCodec将摄像头采集的视频编码为h264

转载自:http://www.cnblogs.com/CoderTian/p/6224605.html MainActivity.java import android.app.Activity;import android.graphics.ImageFormat;import android.hardware.Camera;import android.hardware.Camera

飓风算法2.0上线,百度熊掌号官方说严厉打击恶劣采集行为

飓风算法2.0上线,百度熊掌号官方说严厉打击恶劣采集行为 2018年9月13日百度搜索资源平台发文百度搜索将严厉打击恶劣采集行为,推出飓风算法 2.0。 飓风算法由来 飓风算法是当年百度官方针对恶劣采集为内容主要来源的网站,而推出的一种搜索引擎算法。 飓风算法2.0上线 为了营造良好的搜索内容生态,保护搜索用户的阅读浏览体验,保障优质内容生产方在百度搜索中的权益,百度搜索官方公告将于

【爬虫软件】小红薯评论区采集工具

一、采集目标与应用场景 您好!我利用Python技术自主研发了一款高效的爬虫软件,批量收集小红薯平台上的评论,包括主评论及其下的二级评论。 为了拓宽用户群体,让不具备编程基础的小白用户也能轻松上手,我开发成了界面软件。无需繁琐的Python环境搭建与代码修改,只需简单双击,即可开启采集之旅! 1.1 功能展示 软件界面概览: 如上。 采集成果展示: 直观展示其强大的采集能力。 操作演示

【淘宝采集项目经验分享】商品评论采集 |商品详情采集 |关键词搜索商品信息采集

商品评论采集  1、输入商品ID 2、筛选要抓取评论类型 3、填写要抓取的页数 4、立刻提交-启动测试 5、等爬虫结束后就可以到“爬取结果”里面下载数据 商品详情采集  1、输入商品ID 2、立刻提交-启动爬虫 3、等爬虫结束后就可以到“爬取结果”里面下载数据 taobao.item_get 公共参数 名称类型必须描述keyString是调用key(必须

【经验分享】淘宝商量评论采集系统功能分享|淘宝商品详情采集分享|关键词采集分享

商品评论采集  1、输入商品ID 2、筛选要抓取评论类型 3、填写要抓取的页数 4、立刻提交-启动测试 5、返回数据 响应参数 Version: Date: 名称类型必须示例值描述 rate_content String0衣服面料很好 穿起来很舒服 衣服挺合适的!评论内容 rate_date Date02019-03-16 12:10:24评论日期 pics MIX0["//img