初学者通过Python学习屏幕抓取的最佳方式

And*_*eas 31 python lxml screen-scraping beautifulsoup scrapy

这可能是难以回答的问题之一,但这里有:

我不认为我的自编程员 - 但我想:-)我已经学会了R,因为我厌倦了spss,而且因为一位朋友向我介绍了这种语言 - 所以我不是一个完全陌生的人编程逻辑.

现在我想学习python - 主要是做屏幕抓取和文本分析,还用于用Pylons或Django编写webapps.

那么:我应该如何学习使用python进行屏幕刮擦?我开始经历那些杂乱无章的文档,但我觉得很多"魔术"正在进行 - 毕竟 - 我正在努力学习,而不仅仅是做.

另一方面:没有理由重新发明轮子,如果Scrapy要屏蔽Django对网页的影响,那么毕竟值得直接进入Scrapy.你怎么看?

哦 - 顺便说一句:屏幕抓取的那种:我想要报道网站(即相当复杂和大的)来提及政治家等等 - 这意味着我需要每天,递增和递归地刮 - 我需要记录结果进入各种各样的数据库 - 这引出了一个奖励问题:每个人都在谈论非SQL数据库.我是否应该立即学会使用例如mongoDB(我认为我不需要强烈的一致性),或者我想做什么是愚蠢的?

感谢您的任何想法 - 如果这是一般被认为是一个编程问题,我道歉.

aya*_*yaz 47

我同意Scrapy文档会给人留下这样的印象.但是,我相信,正如我自己发现的那样,如果你对Scrapy有耐心,并首先阅读教程,然后将自己埋没到其余的文档中,你不仅会开始更好地理解Scrapy的不同部分,但你会明白为什么它做它做它的方式.它是一个框架,用于在框架的真正意义上编写蜘蛛和屏幕抓取器.你仍然需要学习XPath,但我发现无论如何都要学习它.毕竟,您确实打算抓取网站,了解XPath是什么以及它如何工作只会让您更轻松.

例如,一旦你了解了pipelinesScrapy 的概念,你将能够理解用报废物品做各种各样的事情是多么容易,包括将它们存储到数据库中.

BeautifulSoup是一个很棒的Python库,可以用来抓取网站.但是,与Scrapy相比,它无论如何都不是一个框架.对于较小的项目,您不必花时间编写适当的蜘蛛并且必须处理大量数据,您可以使用BeautifulSoup.但对于其他任何事情,你只会开始欣赏Scrapy提供的那些东西.


cab*_*nga 11

看起来Scrappy正在使用XPATH进行DOM遍历,这本身就是一种语言,并且可能会在一段时间内感觉有点神秘.我认为BeautifulSoup会给你一个更快的开始.使用lxml你将不得不投入更多的时间学习,但它通常被认为(不仅是我)是BeautifulSoup的更好的替代品.

对于数据库,我建议你从SQLite开始使用它直到你碰壁并需要更具可扩展性的东西(这可能永远不会发生,取决于你想要用多远),此时你会知道什么样的你需要的存储空间.Mongodb在这一点上肯定是矫枉过正,但是熟悉SQL是一项非常有用的技能.

这是我前段时间给出的一个五行示例来说明可以使用锄头BeautifulSoup. 编写Web bot的最佳编程语言是哪种?