c# - 网络爬虫 C# .Net

标签 c# web-crawler

我不确定这是否真的称为网络爬虫,但这就是我想要做的。

我正在使用 C# .Net 在 Visual Studio 2010 中构建一个程序。

我想找到所有具有相同第一部分的网址。

假设我有一个主页:www.mywebsite.com ,还有几个子页面:/tab1 , /tab2 , /tab3

有没有办法获取以 www.mywebsite.com 开头的所有 url 列表?

因此,通过提供www.mywebsite.com ,程序返回www.mywebsite.com/tab1 , www.mywebsite.com/tab2 , www.mywebsite.com/tab3

ps。我不知道总共有多少个子页面。

--中午 12:04 编辑--

抱歉没有解释。

我想知道如何用 C# 编写一个爬虫来完成上述任务。

我只知道主网址www.mywebsite.com ,目标是找到它的所有子页面。

-- 中午 12:16 编辑--

此外,主页上没有链接,html 基本上是空白的。

我只知道子页面存在,但除了提供确切的网址之外,无法链接到它。

最佳答案

嗨,您可能会考虑解析该页面中的 html 内容,它的结构如何并不重要,您只需要考虑获取链接标签,因此您需要做的第一件事是

1- 使用我推荐的 html 解析器 Html Agility Pack是一个非常成熟的 html 解析器,它有很多功能,例如 linq to xml 等。

2-使用正则表达式解析文本,这样您就可以解析您想要的任何 html 标签,而无需涉及太多代码

3-您需要考虑要抓取的链接的深度,想象以下场景:

www.mywebsite.com/tab3 可能包含 www.mywebsite.com/tab3/link2 和 www.mywebsite.com/tab3/link3 等,因此设置限制非常重要

4-您可以创建自己的Windows服务并使用网络请求进行爬网或尝试使用第三方的爬网程序,这取决于您要做的事情的目的我没有使用过这个但它我觉得还不错,也许值得一看。

Abot C# Web Crawler

编辑:

如果页面为空白,您可以使用 site:您的域名.com 作为主要页面来抓取 google,然后从实际域而不是 google 中提取链接,或者尝试从该网站抓取 robots.txt。

关于c# - 网络爬虫 C# .Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17347679/

相关文章:

c# - 是否可以使用 C# 以编程方式登录网站?

c# - 尝试创建嵌套的 ScriptableObject : "AddAssetToSameFile failed because the other asset is not persistent"

c# - MVC 5 Identity 2.0 注册邮件确认问题

C#导出为Excel格式

c# - Http Post 正在发送带有空正文的请求

java - 如何使用 jsoup 从站点获取页面的可导航链接?

search-engine - Nutch 的替代网络爬虫

xml - 无法在 import.io 的爬虫中为网页元素获取正确的 XPath

c# - 主题页面错误中的 ELMAH

jquery - 获取多个元素的文本作为单独的值