Web爬虫解析PHP / Javascript链接?

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

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


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

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

在大多数情况下,这些URL只是普通的HTML,但它们也可以是生成的图像(如validation码)或700mb iso文件的下载链接 – 如果不检查来自HTTP响应的标头,就无法确定那个URL。

注意:如果您从头开始编写自己的爬虫,则需要很好地理解HTTP 。

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


Javascript问题

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


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