首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >网络爬虫程序C# .Net

网络爬虫程序C# .Net
EN

Stack Overflow用户
提问于 2013-06-27 23:49:35
回答 2查看 19.6K关注 0票数 1

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

我正在使用C# .Net在visual Studio2010中构建一个程序。

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

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

有没有办法获得以www.mywebsite.com开头的所有urls的列表

因此,通过提供www.mywebsite.com,程序将返回www.mywebsite.com/tab1www.mywebsite.com/tab2www.mywebsite.com/tab3等。

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

--下午12:04编辑--

抱歉,我没有解释清楚。

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

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

--下午12:16编辑--

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

我只知道子页面是存在的,但是除了提供确切的urls之外,我没有办法链接到它。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-06-28 00:15:16

您好,您可以考虑解析该页面中的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服务,并使用web请求来做爬虫,或者尝试使用来自第三方的爬虫,这取决于你想做什么的目的我还没有用过这个,但对我来说似乎没问题,也许值得一看。

Abot C# Web Crawler

编辑:

如果页面是空白的,你可以抓取谷歌网站:你的domain.com作为你的主要页面,然后从实际的域名提取链接,而不是谷歌,或尝试从网站抓取robots.txt。

票数 4
EN

Stack Overflow用户

发布于 2013-06-28 00:18:21

如果你抓取的都是内部链接,那么你只能找到网站自己链接的子页面。如果有任何特定的链接以某种方式暴露给其他网站,但它们不是内部链接,那么如果你只是爬行有问题的网站,你可能会错过它们。

有几种策略:

如果你正在寻找turtlerescueleague.com的所有子页面,那么只需

  • Cheat: site:turtlerescueleague.com并抓取谷歌结果。这通常会照顾到的问题,网站可能有页面,它没有链接到自己,但一些其他网站链接到them.
  • Build爬虫:你需要从每个超文本标记语言页面提取链接,放弃任何外部链接,检查如果你已经访问了一个链接,队列中的新链接的页面访问和访问的页面!不要忘了礼貌地做这些事情,也就是遵守robots.txt:)。
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17347679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档