javascript - 将 javascript 应用到 html 以获取数千个文档的最快方法

标签 javascript c# browser

<分区>

在应用 javascript 之前,很多页面不包含完整的 html,我需要以完全“呈现”的形式抓取数千页所述 html,但不需要 RAM 或 cpu 方面的视觉方面被采纳,

我现在暂时使用的案例,WebBrowser control .Net, 缺点:渲染,完整的浏览器

考虑到 Selenium , 缺点:半完整的浏览器

最好的选择是 phantomJS,它已经停产,是否有一个现代的等价物可以简单地做到:

string s = "<html><label id="lo"></label><script>document.getElementById('lo').innerHTML = 'dog';</script></html>
";

s = Magic.Parse(s)
//s is now "<html><label id="lo">dog</label><script>document.getElementById('lo').innerHTML = 'dog';</script></html>
";

也许这是个坏例子,好例子,在像 google 和 bing 这样的页面上,他们这样做是为了减慢机器人请求,以便人们使用他们的 API

感谢任何推荐和帮助。

大约有 100 000 个 html 文件

最佳答案

你应该试试 Puppeteer ,它是一个类似于 PhantomJS 的 headless chrome,谷歌使用它来抓取和解析网站以提供内部和公共(public)服务。

如果您需要一个可以与您的 C# 代码一起使用的库,您应该检查 CEFSharp基于 Chromium(开源 Chrome)并更新到最新版本。

关于javascript - 将 javascript 应用到 html 以获取数千个文档的最快方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57314571/

相关文章:

javascript - jquery 和 safari 7 - slipToggle 和 fadeToggle 不起作用

html - 页面有水平滚动条,尽管宽度有限

javascript - 在页面顶部显示颜色框

javascript - JavaScript 中的嵌套数组

javascript - 将 <BR> 标签转换为 Char(10)

html - 浏览器如何查找和渲染 CSS 规则

javascript - 隐藏可见性的子 div 不会消失

javascript - Cookie 在 HttpResponseMessage 中可见,但在 Javascript 中不可见

c# - 从对象中获取自定义属性

c# - 为什么非逐字字符串不能包含换行符?