Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Web抓取-什么是健壮和可扩展的方法?_Javascript_Python_Html_Ruby_Web Scraping - Fatal编程技术网

Javascript Web抓取-什么是健壮和可扩展的方法?

Javascript Web抓取-什么是健壮和可扩展的方法?,javascript,python,html,ruby,web-scraping,Javascript,Python,Html,Ruby,Web Scraping,我在使用Beautiful Soup和Nokogiri等工具进行网页抓取方面的经验有限 到目前为止,我查找信息的方法是首先检查HTML元素和CSS标记,然后应用选择器。虽然这样做有效,但网站之间的细微差异/更改会使代码变得无用。此外,有些情况下网站根本不向HTML元素添加选择器标记,因此我曾经不得不求助于选择元素样式属性的黑客方法 如何设计一个可以跨多个站点工作的刮板?我知道解决方案将取决于上下文,但这样做是否有一般的良好实践?在这个问题之前,我在一次采访中被问到了,我不知道 我曾尝试过谷歌搜索

我在使用Beautiful Soup和Nokogiri等工具进行网页抓取方面的经验有限

到目前为止,我查找信息的方法是首先检查HTML元素和CSS标记,然后应用选择器。虽然这样做有效,但网站之间的细微差异/更改会使代码变得无用。此外,有些情况下网站根本不向HTML元素添加选择器标记,因此我曾经不得不求助于选择元素样式属性的黑客方法

如何设计一个可以跨多个站点工作的刮板?我知道解决方案将取决于上下文,但这样做是否有一般的良好实践?在这个问题之前,我在一次采访中被问到了,我不知道


我曾尝试过谷歌搜索,但我发现的很多东西都不符合基本要求,我也不知道该去哪里查找。任何帮助都将不胜感激。

从你的问题中不清楚你到底想实现什么。如果你想在文章中看到页面的内容,你应该试试看,这会给你一点帮助。您还可以尝试搜索传统的网页方法,如

不管是哪种方式,你都应该记住这是万维网,HTML是一种非常宽容的语言,它允许人们设计机器很难阅读的页面。即使是大型网站有时也会打破惯例,这会迫使代码中出现异常以读取它们。站点逻辑也可能与常规逻辑或其他主要站点逻辑冲突

这意味着您的代码可能包含许多用例和异常


我给你的建议是保留你想要删除的站点页面的样本,并进行一个单元测试,对它们进行迭代并验证删除结果。这样,每次你发现一个新的怪癖时,你都可以将它添加到你的收藏中,并确保如果你所做的更改破坏了其他网站的抓取功能,你就会知道它。

这取决于你想抓取什么内容。你说的网站不将选择器标记添加到HTML元素是什么意思?