-
一个C# 多线程的网页异步抓取类文件代码
一个C#编写的多线程异步抓取网页的网络爬虫控制台程序类代码,这个类实现对网页URL指定内容网页的抓取,并抓取 内容中的链接、文字内容、从HTML代码中分析出链接信息等,本类中还定义了大量的私有方法,从这些私有方法中可从HTML文本中提取出一定字数的纯文本、提取网页中一定字数的纯文本,包括链接文字、提取一定数量的链接,该链接的URL满足某正则式、提取本网页的纯文本中满足某正则式的文字等。
本代码作者:大黑。
本爬虫程序的速度如下:
10线程最快大概400个链接每分钟
6-8线程最快大概200-300个链接每分钟
2-4线程最快大概150-200个链接每分钟
单线程最快大概70-100个链接每分钟
之所以用多线程异步抓取完全是出于效率考虑,本程序多线程同步并不能带来速度的提升,只要抓取的网页不要太多重复和冗余就可以,异步并不意味着错误。
- 2023-05-03 15:55:03下载
- 积分:1
-
一些打印及菲波拉叶数相关的C# 示例源码集
这个例子源码中收集了一些打印及菲波拉叶数相关的C# 示例源码,部分功能需要用到Interop.IWshRuntimeLibrary.dll,已打包在源码包中。
完成的示例功能有:获取控制台应用程序的显示结果、调用指定文档的系统打印功能、使用PrintDocument打印单页图像、使用PrintDocument打印多页文本、使用Stopwatch实现高精度计时、开始计算菲波拉叶数、停止计算菲波拉叶数等,相信这些小实例,为对你学习C#编程有所帮助。
本示例编译运行效果如下图所示,请点击相应按钮查看对应的功能演示。
- 2022-03-10 14:01:16下载
- 积分:1
-
百度智能手环 源代码
百度智能手环 源代码 计步 睡眠 算法
- 2022-08-10 05:51:03下载
- 积分:1
-
C#在listView自定义imageList图标列表
C#在listView自定义imageList图标列表,实际上是创建了一个图像列表的Listview列表,我们可以将一些菜单条目做成此类型,以图标的风格展现操作选项,本实例中你可以熟悉imageList、listView1列表项的添加与删除。
下面是关键的代码:
listView1.LargeImageList = imageList1;
imageList1.ImageSize = new Size(37,36);
imageList1.Images.Add(Image.FromFile("01.png"));调用图标显示的图像资源
imageList1.Images.Add(Image.FromFile("02.png"));
listView1.SmallImageList = imageList1;
listView1.Items.Add("明日科技");图标下边显示的文字
listView1.Items.Add("C#编程词典");
listView1.Items[0].ImageIndex = 0;
listView1.Items[1].ImageIndex = 1;
- 2023-03-09 08:05:03下载
- 积分:1
-
C# 使用几何图形剪辑图像控件中的部分区域
C# 使用几何图形剪辑图像控件中的部分区域,类似于图片遮罩的效果,本例中,把一张图片裁切成椭圆形,图片显示在椭圆的底部,可随窗口的改变自动改变大校
private void Window_Loaded(object sender, RoutedEventArgs e)
{//使用几何图形剪辑图像控件中的部分区域
var MyClip = new EllipseGeometry();
MyClip.RadiusX = 120;
MyClip.RadiusY = 80;
MyClip.Center = new Point(145, 110);
this.image1.Clip = MyClip;
}
- 2022-11-04 14:00:03下载
- 积分:1
-
C# 根据路径使用DirectoryInfo创建文件夹
C# 根据路径创建文件夹,具体来说是使用DirectoryInfo对象的Create方法创建文件夹【目录】。如果用户未指定路径,则在程序当前目录下创建文件夹,若指定路径,则在指定的路径层级下创建目录。
在创建开始前,对用户输入的目录名或路径格式进行验证,然后判断该路径下是否存在该目录,最后创建文件夹。下面是相关的代码:
if (textBox1.Text == string.Empty)//判断输入的文件夹名称是否为空
{
MessageBox.Show("文件夹名称不能为空!");
}
else
{
DirectoryInfo dinfo = new DirectoryInfo(textBox1.Text);//实例化DirectoryInfo类对象
if (dinfo.Exists)//使用DirectoryInfo对象的Exists属性判断要创建的文件夹是否存在
{
MessageBox.Show("该文件夹已经存在");
}
else
{
dinfo.Create();//使用DirectoryInfo对象的Create方法创建文件夹
}
}
- 2023-02-21 06:20:03下载
- 积分:1
-
C# 设置IE地址栏的自动完成功能
C# 设置IE地址栏的自动完成功能,就是用户输入的时候,会下拉提示出相关的内容,可提升用户体验,现在使用已经很广泛了,本例子中的这一自动完成功能,代码如下:
private void button1_Click(object sender, EventArgs e)
{
//创建或者打开指定的注册表项
RegistryKey rgK =Registry.CurrentUser.CreateSubKey(@"SoftwareMicrosoftWindowsCurrentVersionExplorerAutoComplete");
rgK.SetValue("AutoSuggest", "yes", RegistryValueKind.String);//设置IE地址栏的自动完成功能
MessageBox.Show("设置成功!");
}
private void button2_Click(object sender, EventArgs e)
{
//创建或者打开指定的注册表项
RegistryKey rgK =Registry.CurrentUser.CreateSubKey(@"SoftwareMicrosoftWindowsCurrentVersionExplorerAutoComplete");
rgK.SetValue("AutoSuggest", "no", RegistryValueKind.String);//取消IE地址栏的自动完成功能
MessageBox.Show("取消成功!");
}
- 2022-12-03 17:35:03下载
- 积分:1
-
C# WPF 文字动态旋转动画
C# WPF 文字动态旋转动画,这个是动态的,文字以动画方式旋转360度,无缝旋转,WPF制作动画效果还是挺方便的,这个例子十分简单,文字的旋转也可变通为图片的旋转。运行效果图如下示。
- 2022-11-09 17:45:04下载
- 积分:1
-
ATK-ESP8266 WIFI模块资料
1、ATK-ESP8266 WIFI 模块简介 ATK-ESP8266 是 ALIENTEK 推出的一款高性能的 UART-WiFi(串口-无线)模块,ATK-ESP8266 板载ai-thinker公司的ESP8266模块,该模块通过 FCC,CE认证,可直接用于产品出口欧美地区。 ATK-ESP8266模块采用串口(LVTTL)与MCU(或其他串口设备)通信,内置 TCP/IP协议栈,能够实现串口与WIFI之间的转换。 通过 ATK-ESP8266 模块,传统的串口设备只是需要简单的串口配置,即可通过网络(WIFI)传输自己的数据。 ATK-ESP8266 模块支持 LVTTL串口,兼容3.3V和5V单片机系统,可以很方便的与你的产品进行连接。模块支持串口转 WIFI STA、串口转 AP 和WIFI STA+WIFI AP 的模式,从而快速构建串口-WIFI数据传输方案,方便你的设备使用互联网传输数据。 ATK-ESP8266 29mm*19mm 6 2.54mm
- 2022-08-13 08:01:09下载
- 积分:1
-
C# 获取Access数据库的数据表名称
C# 获取Access数据库的数据表名称,private void button1_Click(object sender, EventArgs e)
{//获取Access数据库的数据表名称
string MyAccessDBFile = @"F:Northwind.mdb";
string MyConnectString ="Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +MyAccessDBFile;
var MyConnection = new System.Data.OleDb.OleDbConnection(MyConnectString);
MyConnection.Open();
var MyTables = MyConnection.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
string MyInfo = MyAccessDBFile + "数据库的数据表包括:";
foreach (DataRow MyRow in MyTables.Rows)
{
string MyTable = MyRow["TABLE_NAME"].ToString();
MyInfo += MyTable + "、";
}
MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK);
}
- 2023-01-05 19:40:03下载
- 积分:1