-
一个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
-
STM32F4的三相SPWM逆变器源码
STM32F4的三相SPWM逆变器源码
//该源码是基于STM32F4的三相SPWM逆变器的C程序
#include "stm32f4_discovery.h"
#include "timer.h"
#include "FONT.h"
#include "LCD12864.h"
#include "outputdata.h"
#include
#include "arm_math.h"
- 2022-03-30 05:56:10下载
- 积分:1
-
C# 分割与合并文件包括函数代码
C#文件分割和文件合并的实现举例,包括了完整的源代码,例子代码中包括了文件分割和文件合并的函数,
文件分割:请选择要分割的文件,设置分割文件大小(Byte、KB、MB、GB),
文件合成:选择合并后文件存放路径及名称。
在进行操作的过程中,还对监视“分割”/“合并”按钮的可用状态进行了控制。
实现这个小软件,需要了解FileStream文件流、BinaryWriter书写器、BinaryReader文件阅读器等相关文件操作对象的使用。
本程序的窗体设计非常易用,因此用起来十分方便,如示例截图所示的窗口效果。
- 2022-02-14 00:22:51下载
- 积分:1
-
基于C#的右下角窗体弹出实例+源代码基于C#的右下角窗体弹出实例+源代码基于C#的右下角窗体弹出实例+源代码
基于C#的右下角窗体弹出实例+源代码基于C#的右下角窗体弹出实例+源代码基于C#的右下角窗体弹出实例+源代码基于C#的右下角窗体弹出实例+源代码
- 2022-02-12 22:25:41下载
- 积分: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# 修复Access数据库的一个范例程序
C# 修复Access数据库的一个范例程序,不过不知道到底能不能修复吧,这个修复过程的编写,可参考以下代码:
//声明临时数据库的名称
string temp = DateTime.Now.Year.ToString();
temp += DateTime.Now.Month.ToString();
temp += DateTime.Now.Day.ToString();
temp += DateTime.Now.Hour.ToString();
temp += DateTime.Now.Minute.ToString();
temp += DateTime.Now.Second.ToString() + ".bak";
temp = strPathMdb.Substring(0, strPathMdb.LastIndexOf("") + 1) + temp;
//定义临时数据库的连接字符串
string temp2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + temp;
//定义目标数据库的连接字符串
string strPathMdb2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strPathMdb;
JRO.JetEngineClass jt = new JRO.JetEngineClass();//创建一个JetEngineClass对象
//使用JetEngineClass对象的CompactDatabase方法压缩修复数据库
jt.CompactDatabase(strPathMdb2, temp2);
File.Copy(temp, strPathMdb, true);//拷贝临时数据库到目标数据库(覆盖)
File.Delete(temp);//删除临时数据库
MessageBox.Show("修复完成");
这个程序中使用了三个类库:Interop.ADODB.dll、Interop.ADOX.dll、Interop.JRO.dll。
- 2022-01-26 03:31:51下载
- 积分:1
-
C# 写入并读取内存流
C# 写入并读取内存流,演示一些基本的内存流操作方法,编写以下代码可实现这些功能:
byte[] BContent = Encoding.Default.GetBytes(textBox1.Text);
MemoryStream MStream = new MemoryStream(100);
MStream.Write(BContent, 0, BContent.Length);
richTextBox1.Text = "分配给该流的字节数:" + MStream.Capacity.ToString() + "
流长度:"
+ MStream.Length.ToString() + "
流的当前位置:" + MStream.Position.ToString();
MStream.Seek(0, SeekOrigin.Begin);
byte[] byteArray = new byte[MStream.Length];
int count = MStream.Read(byteArray,0,(int)MStream.Length-1);
while (count < MStream.Length)
{
byteArray[count++] = Convert.ToByte(MStream.ReadByte());
}
char[] charArray = new char[Encoding.Default.GetCharCount(byteArray, 0, count)];
Encoding.Default.GetChars(byteArray, 0, count, charArray, 0);
for (int i = 0; i < charArray.Length; i++)
{
richTextBox2.Text += charArray[i].ToString();
}
- 2022-03-11 09:55:00下载
- 积分:1
-
改善C#的157个建议编写高质量代码_源代码合集
改善C#的157个建议编写高质量代码_源代码合集,这些实例均采用4.0框架,请运行使用Release模式;部分TIP由于简单未给出源码;这157个建议的源码涉及到语言篇、集合和LINQ、泛型、委托和事件、资源管理和序列化、异常与自定义异常、异步、多线程、任务和并行、架构篇成员设计、类型设计、安全性设计、编码规范及习惯、代码整洁、规范开发行为等,每类细分一共形成了157条建议,相信这些建议对于向高深进阶的C#开发者来说,是难得的建议。
- 2022-07-10 03:10:19下载
- 积分:1
-
数据库查询程序示例:C# 获取客户表中指定城市的客户
C# 获取客户表中指定城市的客户,这是一个C# SQLSERVER结合的数据检索程序实例,用来查询满足指定条件的数据库数据,并显示出来。来看代码如下:
//获取客户表中指定城市的客户(使用存储过程返回行集合):
string MyCity = "London";
DataClasses1DataContext MyDataContext = new DataClasses1DataContext();
System.Data.Linq.ISingleResult MyRows = MyDataContext.MyCustomersByCity(MyCity);
string MyInfo = MyCity+"的客户包括:";
foreach (MyCustomersByCity_个结果 MyCustomer in MyRows)
{
MyInfo+="
客户ID:"+MyCustomer.CustomerID;
}
MessageBox.Show(MyInfo, "信息提示", MessageBoxButtons.OK);
- 2022-07-11 07:44:24下载
- 积分:1
-
C# 创建线程实例JoinThread源码
C#创建一个基本简单的线程实例,演示了如何创建线程,面向C#新手的一个例子:
Thread myThread;//声明线程
//用线程起始点的ThreadStart委托创建该线程的实例
myThread = new Thread(new ThreadStart(createThread));
myThread.Start();//启动线程
myThread.Join();//阻止调用该线程,直到该线程终止
Console.ReadLine();
- 2022-11-16 06:35:03下载
- 积分:1