Web爬虫解析PHP / Javascript链接?

时间:2010-02-19 13:13:09

标签: c# web-crawler

我目前正在使用C#中的HTML Agility Pack作为网络抓取工具。到目前为止,我已经成功避免了许多问题(无效的URI,例如“/extra/url/to/base.html”和“#”链接),但我还需要处理PHP,Javascript等。网站,链接是PHP,当我的网页抓取工具尝试导航到这些链接时,它会失败。一个例子是PHP / Javascript手风琴链接页面。我将如何导航/解析这些链接?

1 个答案:

答案 0 :(得分:6)

让我们看看我是否正确理解了您的问题。我知道这个答案可能不够,但如果你需要一个更具体的答案,我需要更多细节。


您正在尝试对网络抓取工具进行编程,但它无法抓取以.php结尾的网址?

如果是这种情况,你需要退一步思考为什么会这样。这可能是因为爬虫根据URI方案选择使用正则表达式进行爬网的URL。

在大多数情况下,这些URL只是普通的HTML,但它们也可能是生成的图像(如验证码)或700mb iso文件的下载链接 - 如果不查看标题,就无法确定来自该URL的HTTP响应。

注意:如果您是从头开始编写自己的抓取工具,则需要对HTTP有充分的了解。

抓取工具获取网址时首先要看到的是标题,其中包含MIME content-type - 它告诉浏览器/抓取工具如何处理和打开数据(是HTML,普通文本, .exe等)。您可能希望基于MIME类型而不是URL方案下载页面。 HTML的MIME类型为text/html,您应该在下载URL的其余内容之前使用您正在使用的HTTP库检查它。


Javascript问题

与上面相同,只是在简单项目中运行javascript在爬虫/解析器中非常罕见,并且可能会产生比它解决的问题更多的问题。你为什么需要Javascript?


不同的解决方案
如果您愿意学习Python(或已经知道),我建议您查看Scrapy。它是一个类似于Django web framework构建的网络爬行框架。它非常易于使用,并且已经解决了很多问题,因此如果您想要了解有关该技术的更多信息,这可能是一个很好的起点。