这可能是难以回答的问题之一,但这里有:
我不考虑我自己的程序员 - 但我想 :-) 我学过 R,因为我厌倦了 spss,而且因为一个朋友向我介绍了这门语言 - 所以我并不完全陌生编程逻辑。
现在我想学习 python - 主要是为了进行屏幕抓取和文本分析,但也为了使用 Pylons 或 Django 编写网络应用程序。
那么:我应该如何学习使用 python 进行屏幕抓取?我开始浏览 零碎的文档,但我觉得很多“魔法”正在发生 - 毕竟 - 我正在努力学习,而不仅仅是做。
另一方面:没有理由重新发明轮子,如果 Scrapy 之于屏幕抓取就像 Django 之于网页,那么直接进入 Scrapy 可能是值得的。你怎么认为?
哦 - 顺便说一句:那种屏幕抓取:我想抓取报纸网站(即相当复杂和大)以提及政治家等 - 这意味着我需要每天抓取,增量和递归 - 我需要记录结果进入各种数据库 - 这让我想到了一个额外的问题:每个人都在谈论非 SQL DB。我应该立即学习使用例如 mongoDB(我认为我不需要强一致性),还是我想做的事情很愚蠢?
感谢您的任何想法 - 如果这通常被视为编程问题,我深表歉意。
原文由 Andreas 发布,翻译遵循 CC BY-SA 4.0 许可协议
我同意 Scrapy 文档给人的印象。但是,我相信,正如我自己发现的那样,如果你对 Scrapy 有耐心,先通读教程,然后将自己埋头于文档的其余部分,你不仅会开始更好地理解 Scrapy 的不同部分,但您会明白为什么它会按照它的方式做事。它是一个真正意义上的框架,用于编写蜘蛛和屏幕抓取器的框架。您仍然需要学习 XPath,但我发现无论如何最好还是学习它。毕竟,您确实打算抓取网站,了解什么是 XPath 及其工作原理只会让事情变得更容易。
例如,一旦您理解了 Scrapy 中
pipelines
的概念,您将能够体会到用报废物品做各种事情是多么容易,包括将它们存储到数据库中。BeautifulSoup
是一个很棒的 Python 库,可用于抓取网站。但是,与 Scrapy 相比,它无论如何都不是一个框架。对于您不必花时间编写适当的爬虫并且必须处理大量数据的较小项目,您可以使用 BeautifulSoup。但对于其他任何事情,您只会开始欣赏 Scrapy 提供的那种东西。