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

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

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

代码说明:

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

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

发表评论

0 个回复

  • C# WPF 制作3D动画旋转的地球 超赞 附
    C# WPF 制作3D动画旋转的地球 超赞 附源码,在源代码中使用了3DTools.dll,不过这仍然是一个非常棒的三维动画实例,使用WPF技术,将一幅静态的BMP地球图像,制作成动态的圆形的地球旋转动画,超逼真的地球动画,请参见测试截图。本源码可为广大C#爱好者学习WPF技术提供一个得力的参考。
    2022-03-22 09:21:02下载
    积分:1
  • C# 通过Linq实现元素操作符
    C# 通过Linq实现各种元素操作符,比如实现了以下操作符:   var first = pdt.First(p => p.p_price > 500);//返回单价大于500的第一个元素   Console.WriteLine("First操作符(" + first + ")");   var last = pdt.Last(p => p.p_price < 500);//返回单价小于500的最后一个元素   Console.WriteLine("Last操作符(" + last + ")");   var single = pdt.Single(p => p.p_id == 1);//返回产品id为1的元素   Console.WriteLine("Single操作符(" + single + ")");   var elementat = pdt.ElementAt(3);//返回第4个元素   Console.WriteLine("ElementAt操作符(" + elementat + ")");   Console.Read();
    2022-05-15 10:44:11下载
    积分:1
  • C# 轨迹动画 使动画对象沿着贝塞尔曲线平滑移动
    C# 轨迹动画 使动画对象沿着贝塞尔曲线平滑移动,很明显的你会看到,小球是沿着给定的路径运动的,一会向上,一会向下运动,很明显的转变动画,在本例中,这个轨迹是贝塞尔曲线.
    2022-09-18 20:15:03下载
    积分:1
  • C#读取数据库内容并在dataGridView中显示
    C#从数据库中读取内容并显示在dataGridView中,这似乎是一个很实用的功能,在数据库应用的时候,我们都要通过dataGridView来显示数据,这个例子可帮助初学者很好的掌握此功能的具体实现,一些代码片段分享如下:   private void button1_Click(object sender, EventArgs e)   {    //实例化SqlConnection变量conn,连接数据库    conn = new SqlConnection("server=.;database=db_15;uid=sa;pwd=");    //实例化SqlDataAdapter对象    SqlDataAdapter sda = new SqlDataAdapter("select * from tb_emp", conn);    DataSet ds = new DataSet(); //实例化DataSet对象    sda.Fill(ds);//使用SqlDataAdapter对象的Fill方法填充DataSet    dataGridView1.DataSource = ds.Tables[0];//设置dataGridView1控件的数据源    dataGridView1.RowHeadersVisible = false;//禁止显示行标题    //使用for循环设置控件的列宽    for (int i = 0; i < dataGridView1.ColumnCount; i++)    {    dataGridView1.Columns[i].Width = 84;    }    button1.Enabled = false;//禁用按钮    dataGridView1.Columns[0].ReadOnly = true;//将控件设置为只读   }   private DataTable dbconn(string strSql)//建立一个DataTable类型的方法   {    this.adapter = new SqlDataAdapter(strSql, conn);//实例化SqlDataAdapter对
    2022-07-24 21:44:03下载
    积分:1
  • C# FTP客户端模块 上传下载文件显示进度
    C# FTP客户端模块 上传下载文件显示进度,本示例可通过HTTP、FTP下载文件,可通过FTP上传文件,请设定好服务器IP地址再测试,进度条在窗口的最上方。   percent = (float)totalDownloadedByte / (float)totalBytes * 100;   label1.Text = "当前补丁下载进度" + percent.ToString() + "%";   Application.DoEvents(); //必须加注这句代码,否则label1将因为循环执行太快而来不及显示信息   reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword);//用户,密码   reqFTP.Method = WebRequestMethods.Ftp.UploadFile;//向服务器发出下载请求命令   reqFTP.ContentLength = finfo.Length;//为request指定上传文件的大小
    2022-03-23 13:46:25下载
    积分:1
  • C# timer应用范例:左右飘动的窗体
    C# 创建一个飘动的窗体,左右飘动,主要是对Timer的控制,基本的原理是:窗体的左上角横坐标随着timer1不断加一,窗体的左上角横坐标随着timer2不断减一,这个过程由Timer控制,因此你要写出一个循环,来控制Timer不停变化,比如timer不断加一:   Point p = new Point(this.DesktopLocation.X + 1, this.DesktopLocation.Y);   this.DesktopLocation = p;   if (p.X == 630)   {    timer1.Enabled = false;    timer2.Enabled = true;   }   以上代码的执行我们放入到private void timer1_Tick私有函数中,运行程序后即运行该函数。
    2023-03-26 23:00:04下载
    积分:1
  • C# winform 运行时拖动可改变控件大小及位置
    C# winform 运行时拖动可改变控件大小及位置,在代码中定义了PickBox类,这个类实现了窗体控件的 大小和移动函数,用户运行时编辑,完成将pick box 附加到 相应的控件上,添加用于将选定控件移动的事件处理程序,移除上一个控件的事件处理,将大小调整手柄添加到控件容器中,位置控制周围的大小调整。。。
    2022-02-05 07:11:00下载
    积分:1
  • C# WPF 方法为TextBox控件设置背景图像
    C# 为TextBox控件设置背景图像,结合C#的WPF实现,其实刚开始我还以为这是一个图像特效,在图片上添加文字,如示例截图所示的黄圈的部分,其实有一个TextBox,鼠标单击一下就会发现,这里可以输入文字的,正好输入在图片的上方,好像是为图片添加描述文字,其实本实例所展示的功能和图像处理关系不大,主要是对TextBox的操作,为其增加了一张背景图片所呈现出的效果。核心代码如下:   private void Window_Loaded(object sender, RoutedEventArgs e)   {//为TextBox控件设置背景图像    ImageBrush MyImageBrush = new ImageBrush();    MyImageBrush.ImageSource =new BitmapImage(    new Uri("J003.jpg", UriKind.RelativeOrAbsolute));    MyImageBrush.AlignmentX = AlignmentX.Left;    MyImageBrush.Stretch = Stretch.None;    this.textBox1.Background = MyImageBrush;   }
    2022-08-20 01:07:16下载
    积分:1
  • C#以二进制格式打开和保存文件
    C#使用BinaryWriter、BinaryReader对象分别保存和读取二进制文件,程序分两部分,先来看第一部分:   C#以二进制格式保存文件:设置保存文件的格式:   saveFileDialog1.Filter = "二进制文件(*.dat)|*.dat";   if (saveFileDialog1.ShowDialog() == DialogResult.OK)   {    //使用“另存为”对话框中输入的文件名实例化FileStream对象    FileStream myStream = new FileStream(saveFileDialog1.FileName, FileMode.OpenOrCreate, FileAccess.ReadWrite);    //使用FileStream对象实例化BinaryWriter二进制写入流对象    BinaryWriter myWriter = new BinaryWriter(myStream);    //以二进制方式向创建的文件中写入内容    myWriter.Write(textBox1.Text);    //关闭当前二进制写入流    myWriter.Close();    //关闭当前文件流    myStream.Close();    textBox1.Text = string.Empty;   }   打开文件时同样也是以二进制来打开读取文件内容:   //设置打开文件的格式   openFileDialog1.Filter = "二进制文件(*.dat)|*.dat";   if (openFileDialog1.ShowDialog() == DialogResult.OK)   {    textBox1.Text = string.Empty;    //使用“打开”对话框中选择的文件名实例化FileStream对象    FileStream myStream = new FileStream(openFileDialog1.FileName, FileMode.Open, FileAccess.Read);    //使用FileStream对象实例化BinaryRea
    2022-02-14 18:03:07下载
    积分:1
  • Visual C# WPF 实现文字左右流动(滚动)效果
    Visual C# WPF技术实现文字内容从左向右流动、从右向左流动,其实就是文字滚动,稍加了一些特殊处理,下面来看看代码真的好简单:   private void button1_Click(object sender, RoutedEventArgs e)   {//内容从左向右流动    this.MyFlowDocument.FlowDirection = FlowDirection.LeftToRight;   }   private void button2_Click(object sender, RoutedEventArgs e)   {//内容从右向左流动    this.MyFlowDocument.FlowDirection = FlowDirection.RightToLeft;   }
    2022-02-04 14:45:10下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载