Web Scraping - 什么是一种强大而可扩展的方法?

时间:2014-04-04 03:10:33

标签: javascript python html ruby web-scraping

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

enter image description here

到目前为止,我在查找信息时的方法是首先检查HTML元素和CSS标记,然后应用选择器。虽然这有效,但网站之间的细微差别/变化会使代码无效。此外,在某些情况下,网站根本不会将选择器标签添加到其HTML元素中,因此我不得不求助于选择元素的样式属性的hacky方法。

如何设计一个可以跨多个站点工作的刮刀?我知道解决方案将取决于上下文,但这样做是否有一般的良好做法?实际上我在这个问题面前接受了采访,但我不知道。

我尝试使用谷歌搜索,但我发现的大部分内容都没有超过基础知识,我不知道在哪里看。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

从你的问题中不清楚你究竟想要完成什么。如果你想要页面的内容(就像在文章中一样) - 你应该尝试goose,这应该会让你站起来。您还可以尝试搜索meta tags等常规网页方法。

无论哪种方式,您都应该记住这是 World Wild Web HTML是一种非常宽容的语言,它可以让人们设计非常很难被机器读取。即使是大型网站,有时也会从惯例中获得专有的中断,这会强制您的代码中出现异常以便阅读它们。网站逻辑也可能与传统逻辑或其他主要网站冲突

这意味着您的代码可能包含大量用例和例外。

我的建议是保留您想要抓取的网站页面的样本,并进行单元测试,迭代它们并验证抓取结果。这样,每当你找到一个新的怪癖时,你可以将它添加到你的收藏中,并确保如果你所做的改变打破了其他网站的抓取,你就会知道它。