并行编程模式与实现:从Delphi到OmniThreadLibrary
1. 管道与网络爬虫实现
在并行编程中,管道是一种强大的模式,可用于实现复杂的任务,如网络爬虫。下面详细介绍网络爬虫中各个阶段的实现。
1.1 过滤阶段
过滤阶段的主要任务是创建一个 TStringList 对象,用于存储已经处理过的URL。对于每个输入的URL,会进行以下检查:
- 检查URL是否已经在列表中,如果是则丢弃。
- 检查URL是否属于正在爬取的网站,如果不是也丢弃。
以下是过滤阶段的实现代码:
procedure TWebSpider.Asy_UniqueFilter(baseUrl: string;
inQueue, outQueue: TPipe<string>);
var
baseUrl2: string;
visitedPages: TStringList;
begin
visitedPages := TStringList.Create;
try
visitedPages.Sorted := true;
if not (baseUrl.StartsWith('https://')
or baseUrl.StartsWith('http://'))
then
baseUrl := 'http://' + baseUrl;
if baseUrl.StartsWith('http://') then
baseUrl2 := baseUrl
超级会员免费看
订阅专栏 解锁全文
70

被折叠的 条评论
为什么被折叠?



