登录
首页 » C#源码 » 一个C# 多线程的网页异步抓取类文件代码

一个C# 多线程的网页异步抓取类文件代码

于 2023-05-03 发布 文件大小:6.57 kB
0 220
下载积分: 2 下载次数: 1

代码说明:

一个C#编写的多线程异步抓取网页的网络爬虫控制台程序类代码,这个类实现对网页URL指定内容网页的抓取,并抓取 内容中的链接、文字内容、从HTML代码中分析出链接信息等,本类中还定义了大量的私有方法,从这些私有方法中可从HTML文本中提取出一定字数的纯文本、提取网页中一定字数的纯文本,包括链接文字、提取一定数量的链接,该链接的URL满足某正则式、提取本网页的纯文本中满足某正则式的文字等。   本代码作者:大黑。   本爬虫程序的速度如下:   10线程最快大概400个链接每分钟   6-8线程最快大概200-300个链接每分钟   2-4线程最快大概150-200个链接每分钟   单线程最快大概70-100个链接每分钟   之所以用多线程异步抓取完全是出于效率考虑,本程序多线程同步并不能带来速度的提升,只要抓取的网页不要太多重复和冗余就可以,异步并不意味着错误。

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • C# 递增运算/递减运算
    C# 简单模拟递增运算、递减运算:   private void repeatButton1_Click(object sender, RoutedEventArgs e)   {//递增运算    Int32 MyNum = Convert.ToInt32(this.textBox1.Text);    this.label1.Content = "正在进行递增运算:";    this.textBox1.Text = ((MyNum + 1).ToString());   }   private void repeatButton2_Click(object sender, RoutedEventArgs e)   {//递减运算    Int32 MyNum = Convert.ToInt32(this.textBox1.Text);    this.label1.Content = "正在进行递减运算:";    this.textBox1.Text = ((MyNum - 1).ToString());   }
    2022-02-26 15:45:23下载
    积分:1
  • C# winform邮件发送 可抄送、密送、发附件
    C# 可抄送、密送、发附件的Winform发邮件程序,邮件主是信息的填写部分要注意格式不能错,抄送和密送时多个收件人以分号隔开,可连续发送多个附件,多个附件以分号隔开。发送邮件采用了发送邮件函数的方式,方便以模块化调用 ,发邮件还可异步发送,SMTP 服务器要求安全连接需要设置smtp.EnableSsl = Ssl属性。   请注意:发送邮件前,请先配置然后再发邮件(注:以上参数为格式示例,需自行更改为实际真实有效的信息)。   发邮件的整体用户界面如测试图所示。
    2023-08-13 11:10:02下载
    积分:1
  • 第五版课件及习题程序和学习辅导
    第五版课件及习题程序和学习辅导源码
    2022-01-27 20:17:14下载
    积分:1
  • C# LED显示屏数管风格的计数器显示效果
    C#实现一个计数器效果,计算器的功能和其它的没什么区别,但是它的显示风格我觉得是亮点,采用了LED数码显示屏风格的计数内容显示,让这个计数器也上档次了,完成这个功能的核心 文件,请参考源码压缩包中的LedCtrl.cs,这里面创建了LED的点数组、段0~6点数组,包括了右下角的小数点,还有一些基本的字符编码,每段的显示控制代码,就添加了注释,帮助不熟悉这个类的C#爱好者快速上手使用,本示例实现的效果如演示截图所示。
    2022-02-02 14:57:36下载
    积分:1
  • C#开发的一个完整的网络爬虫程序示例
    C#开发的一个完整的网络爬虫程序源码示例,本源码是老外编写的,里面的注释全部是英文,源代码写于5、6年前了,当时是模拟实现的一个小型的搜索引擎,用于模拟抓取网站上的网页内容,参考价值还是有的,我现在编译不起来,可能是环境的问题,留给C#爱好者研究吧。
    2022-08-22 01:44:37下载
    积分:1
  • C# 查询订购产品ID为51的客户信息
    C# 查询订购产品ID为51的客户信息,需要连接数据库来测试,相关代码分享如下:   //查询订购产品ID为51的客户信息   SqlConnection MyConnection = new SqlConnection(@"Data Source =luobin-PCSQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True");   MyConnection.Open();   DataSet MyDataSet = new DataSet("CustomerOrdersDetails");   SqlDataAdapter MyCustomerAdapter = new SqlDataAdapter("SELECT * FROM Customers", MyConnection);   MyCustomerAdapter.Fill(MyDataSet, "Customers");   DataTable MyTable = new DataTable();   MyCustomerAdapter.Fill(MyTable);   SqlDataAdapter MyOrderAdapter = new SqlDataAdapter("SELECT * FROM Orders", MyConnection);   MyOrderAdapter.Fill(MyDataSet, "Orders");   SqlDataAdapter MyDetailAdapter = new SqlDataAdapter("SELECT * FROM [Order Details]", MyConnection);   MyDetailAdapter.Fill(MyDataSet, "OrderDetails");   MyConnection.Close();   MyDataSet.Relations.Add("CustOrders",MyDataSet.Tables["Customers"].Columns["CustomerID"],MyDataSet.Tables["Orders"].Columns["CustomerID"]).Nested = true;   MyDataSet.Relations.Add(
    2023-04-28 12:35:03下载
    积分:1
  • C# 使用聚合函数查找数据库重复记录
    C#利用聚合函数显示数据库中重复记录的数量,这个例子可找出数据库中的重复内容,对优化数据库很有帮助。实现本功能可参考以下代码:   dgv_Message.DataSource = GetMessage();//设置数据源   dgv_Message.Columns[0].Width = this.Width;//设置列宽度   dgv_Message.DataSource = GetStudent();//设置数据源   dgv_Message.Columns[0].Width = 200;//设置列宽度   string P_Str_SqlStr = string.Format(//创建SQL查询字符串    @"SELECT 所在学院 ,COUNT(所在学院) AS 学生数量 FROM tb_Student GROUP BY 所在学院");   SqlDataAdapter P_SqlDataAdapter = new SqlDataAdapter(//创建数据适配器    P_Str_SqlStr, P_Str_ConnectionStr);   DataTable P_dt = new DataTable();//创建数据表   P_SqlDataAdapter.Fill(P_dt);//填充数据表   return P_dt;//返回数据表,更多代码请下载本实例 。
    2022-06-30 05:46:27下载
    积分:1
  • C# 电话客服系统范例+文档
    C# 电话客服系统源代码范例+文档,含 有语音文件,支持语音通话的客服系统,本电话客服系统有以下几个特点:   1.客户在拨打企业电话客服时,系统会自动接收、识别并记录来电的主叫号码并显示相应的客户信息。   2.客户电话打入时系统自动播放已设定好的欢迎词。   3.用户在拨打企业电话客服后,系统会进行自动语音引导,客户通过按键选择,从而可以听到预先设置好的语音咨讯,如企业简介、信息、最新产品等……。所有咨讯信息通过按键即可获得。   4.外线电话转接到座席电话功能,使来电者可以根据系统提示,转入人工服务,与座席人员直接进行交流。   5.座席电话转接到座席电话功能。   默认的系统管理员用户名为:Tsoft,密码为:111。   调试注意:本程序需要硬件支持,需要安装东进DJD 161A语音卡及驱动程序,否则运行程序出错。
    2022-01-26 02:31:41下载
    积分:1
  • 几个C# 窗口标题栏 按钮 任务栏自定义实例
    本源码主要是收集的几个C# 窗口标题栏 按钮 任务栏自定义实例,比如隐藏和显示标题栏、允许和禁止在窗口任务栏显示程序图标等,帮助C#初学者了解一些基础的C#窗口操作知识,有很好的学习参考价值。   private void button1_Click(object sender, RoutedEventArgs e)   {//隐藏标题栏    this.WindowStyle = System.Windows.WindowStyle.None;   }   private void button2_Click(object sender, RoutedEventArgs e)   {//显示标题栏    this.WindowStyle = System.Windows.WindowStyle.SingleBorderWindow;   }   private void button3_Click(object sender, RoutedEventArgs e)   {//禁止在任务栏上显示程序按钮    this.ShowInTaskbar = false;   }   private void button4_Click(object sender, RoutedEventArgs e)   {//允许在任务栏上显示程序按钮    this.ShowInTaskbar = true;   }   如下图所示,点击对应的按钮,可演示对应的功能。
    2023-03-24 21:30:03下载
    积分:1
  • C#打造自己的智能屏幕取色工具
    C#打造自己的智能屏幕取色工具,自动鼠标坐标点的颜色值,取色窗口会自动躲闪鼠标的位置,取色模块从一个继承自Image类的对象中创建Graphics对象,颜色值可以转换为十进制和十六进制,部分初始化源码如下:   [DllImport("gdi32")]   private static extern IntPtr CreateDC(   string lpszDriver, // 驱动名称   string lpszDevice, // 设备名称   string lpszOutput, // 无用,可以设定位"NULL"   IntPtr lpInitData // 任意的打印机数据   );   [DllImport("gdi32.dll")]   private static extern bool BitBlt(   IntPtr hdcDest, // 目标设备的句柄   int nXDest, // 目标对象的左上角的X坐标   int nYDest, // 目标对象的左上角的X坐标   int nWidth, // 目标对象的矩形的宽度   int nHeight, // 目标对象的矩形的长度   IntPtr hdcSrc, // 源设备的句柄   int nXSrc, // 源对象的左上角的X坐标   int nYSrc, // 源对象的左上角的X坐标   int dwRop // 光栅的操作值
    2022-02-26 10:33:42下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载