我不确定这是否真的称为网络爬虫,但这就是我想要做的。
我正在使用 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服务并使用网络请求进行爬网或尝试使用第三方的爬网程序,这取决于您要做的事情的目的我没有使用过这个但它我觉得还不错,也许值得一看。
编辑:
如果页面为空白,您可以使用 site:您的域名.com 作为主要页面来抓取 google,然后从实际域而不是 google 中提取链接,或者尝试从该网站抓取 robots.txt。
关于c# - 网络爬虫 C# .Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17347679/