1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
//声明和需进行跨线程调用的方法相同形参表的委托
public delegate void AddStatusInfoToFormCallback(string str);
private void AddStatusInfoToForm(string str)
{
//检测调用控件的线程和创建控件的线程是否相同
//如果调用控件的线程和创建创建控件的线程不是同一个则为True
if (InvokeRequired)
{
//使用委托调用本方法
var d = new AddStatusInfoToFormCallback(AddStatusInfoToForm);
Invoke(d, str);
}
else
{
//当前线程调用
Controls.Clear();
}
}
阅读全文 »

redhat 的更新包只对注册的用户生效,所以我们需要自己手动更改成CentOS 的更新包,CentOS几乎和redhat是一样的,所以无需担心软件包是否可安装,安装之后是否有问题。

阅读全文 »

Winform程序中光标在TextBox控件中时按下 Ctrl + A 快捷键,并不能选中全部文字,而是会发出警告音。本文给出实现方法。

阅读全文 »

Extractor的工作是从下载的网页中将它包含的所有URL提取出来。这是个细致的工作,你需要考虑到所有可能的url的样式,比如网页中常常会包含相对路径的url,提取的时候需要将它转换成绝对路径。这里我们选择使用正则表达式来完成链接的提取。

html标签中的链接地址通常会出现在href属性或者src属性中,所以我们采用两个正则表达式来匹配网页中的所有链接地址。

阅读全文 »

Url Seen用来做url去重。对于一个大的爬虫系统,它可能已经有百亿或者千亿的url,新来一个url如何能快速的判断url是否已经出现过非常关键。因为大的爬虫系统可能一秒钟就会下载几千个网页,一个网页一般能够抽取出几十个url,而每个url都需要执行去重操作,可想每秒需要执行大量的去重操作。因此Url Seen是整个爬虫系统中非常有技术含量的一个部分。

阅读全文 »