C# 正则表达式:从其他网站挖掘文本数据

C# 正则表达式:从其他网站挖掘文本数据,c#,asp.net,wcf,iis,C#,Asp.net,Wcf,Iis,我想浏览其他公司的网站,比如说汽车网站,并从我的本地数据库中提取只读信息。然后我希望能够在我的网站上显示这些收集到的信息。纯粹从技术角度来看,是否有一个.net工具、程序等已经存在,对于我的目的来说已经足够通用。还是我必须从头开始写 为了有效地做到这一点,我可能需要一个WCF的工作,只是不断挖掘数据和刷新数据库,然后提供数据给网站 还有,有没有办法屏蔽我打给那些网站的电话?我会为我的目标网站制造“流量负担”吗?如果我只是无害地爬行它们,会影响它们的功能吗 我如何使我的请求看起来像“人类”而不是来

我想浏览其他公司的网站,比如说汽车网站,并从我的本地数据库中提取只读信息。然后我希望能够在我的网站上显示这些收集到的信息。纯粹从技术角度来看,是否有一个.net工具、程序等已经存在,对于我的目的来说已经足够通用。还是我必须从头开始写

为了有效地做到这一点,我可能需要一个WCF的工作,只是不断挖掘数据和刷新数据库,然后提供数据给网站

还有,有没有办法屏蔽我打给那些网站的电话?我会为我的目标网站制造“流量负担”吗?如果我只是无害地爬行它们,会影响它们的功能吗

我如何使我的请求看起来像“人类”而不是来自爬虫

有没有关于如何使用解析DOM树的库的代码示例


我是否可以向特定站点发送请求,并通过WebBrowser控件获得DOM方面的响应?

我不知道您会如何影响目标站点,但生成人形流量的一种巧妙方法是WinForms浏览器控件。我曾多次使用它从Wikipedia获取信息,因为我使用HttpWebRequest执行HTTP的正常模式被标记为非人工过滤器,因此我被阻止。

用于解析HTML。然后使用Windows服务(而不是WCF)运行长时间运行的进程。

就影响目标站点而言,它完全取决于站点。如果你抓取stackoverflow的次数足够快,他们会禁止你的ip。如果你对谷歌也这么做,他们会开始要求你回答CAPTCHA。大多数网站都有速率限制,所以你只能经常请求


至于从页面中删除数据,千万不要使用正则表达式,这是人们反复说的。您应该使用另一个解析DOM树的库,或者根据需要滚动自己的库。在我之前的一次创业中,我们处理这个问题的方式是编写一个中间模板语言,告诉我们的刮板数据在页面上的位置,这样我们就知道我们提取的是什么数据和什么类型的数据。你会发现最困难的部分是不断变化的数据。一旦解析器开始工作,即使在同一个站点上,也需要不断地工作才能让它继续工作。

我使用了一个非常灵活的工具。输出到Excel、SQL、文本。来自同一机构的输入

没有通用工具可以为您从Web提取数据。这不是一个简单的操作。一般来说,抓取页面并没有那么困难。但是剥离/提取您需要的内容是困难的。此操作必须针对每个网站进行定制

我们使用专门用于此目的的专业工具,这些工具旨在为爬虫程序提供有关网页中哪些区域提取所需数据的说明

我还见过设计用于从特定网页提取数据的Perl脚本。它们可能非常有效,这取决于您解析的站点

如果你访问一个网站太频繁,你将被禁止(至少暂时禁止)


要屏蔽您的IP,您可以尝试

您能否详细说明“人性化流量是WinForms浏览器控件”?我迷路了……具体来说,如果你只想在加载网页时查看源代码中的eqiv,你可以使用System.Net.HttpWebRequest/Response,但有些网站知道“真正的”浏览器会在他们的请求头中添加额外的内容(除其他外)。维基百科在阻止我之前只允许了一些这样的请求。但是,当我使用WebBrowser控件时,我基本上是通过编程驱动IE的一个实例,因此任何类型的检测都必须基于不太确定的更定性的度量(我认为是这样的)。更清楚吗?还有,像谷歌这样的搜索引擎都有API,如果你的情况适合的话,你可以通过编程获得结果。有没有关于如何使用这些API的例子?通常情况下,网站布局变化不大,所以我不明白你的意思“一旦解析器正常工作,即使在同一站点上,也需要不断地工作才能使其继续工作。”