scrapy 初学者学习Python屏幕抓取的最佳方式[已关闭]

nr9pn0ug  于 2022-11-09  发布在  Python
关注(0)|答案(6)|浏览(121)

已关闭。此问题为opinion-based。当前不接受答案。
**想要改进此问题吗?**请更新问题,以便editing this post可以用事实与引用来回答.

去年关闭了。
Improve this question
这可能是那些很难回答的问题之一,但这里去:
我不认为我的自我程序员-但我想:-)我已经学会了R,因为我是生病和厌倦的spss,因为一个朋友介绍我的语言-所以我不是一个完全陌生的编程逻辑。
现在我想学习python -主要是做屏幕抓取和文本分析,但也可以用Pylons或Django编写Web应用程序。
所以:我应该如何开始学习用Python刮屏呢?我开始学习X1 E3 F1 X,但我觉得有太多的“魔力”正在发生-毕竟-我在努力学习,而不仅仅是做。
另一方面:没有理由重新发明轮子,如果Scrapy是屏幕抓取Django是网页,那么它可能毕竟是值得直接跳到Scrapy。你怎么想?
哦-顺便说一句:屏幕刮擦的种类:我想从报纸网站(即相当复杂和庞大的网站)中搜集有关政治家等的信息--这意味着我需要每天以增量和递归的方式搜集信息--而且我需要将结果记录到一个数据库中--这就引出了一个额外的问题:每个人都在谈论非SQL数据库。我应该马上学习使用例如mongoDB(我不认为我需要很强的一致性),或者这对我想做的事情来说是愚蠢的吗?
感谢您的任何想法-我道歉,如果这是一般认为是一个编程问题。

pvcm50d1

pvcm50d11#

我同意Scrapy文档给予人这样的印象。但是,我相信,正如我自己发现的那样,如果你对Scrapy有耐心,先读完教程,然后埋头于文档的其余部分,你不仅会开始更好地理解Scrapy的不同部分,但是您会理解它为什么以它的方式来做它所做的事情,它是一个真实的意义上的框架,用于编写蜘蛛和屏幕抓取器,您仍然需要学习XPath,但我发现无论如何最好还是学习它。毕竟,您确实打算抓取网站,了解XPath是什么以及它是如何工作的只会让您的工作变得更容易。
例如,一旦您理解了Scrapy中pipelines的概念,您将能够体会到对报废物品进行各种处理是多么容易,包括将它们存储到数据库中。
BeautifulSoup是一个很棒的Python库,可以用来抓取网站。但是,与Scrapy相比,它无论如何都不是一个框架。对于较小的项目,你不必花时间编写一个合适的spider,并且必须处理大量的数据抓取,你可以使用BeautifulSoup。但是对于其他任何东西,你将开始欣赏Scrapy提供的东西。

6gpjuf90

6gpjuf902#

看起来Scrappy正在使用XPATH进行DOM遍历,XPATH本身就是一种语言,可能会让人感觉有些晦涩难懂。我认为BeautifulSoup会给予你一个更快的开始。使用lxml,你将不得不投入更多的时间学习,但它通常被认为(不仅仅是我)是BeautifulSoup的更好的替代品。
对于数据库,我建议你从SQLite开始,直到你遇到瓶颈,需要更可伸缩的东西(这可能永远不会发生,取决于你想走多远),这时你就会知道你需要什么样的存储。Mongodb在这一点上肯定是矫枉过正,但熟悉SQL是一个非常有用的技能。
这里有一个五行代码的例子,我在前一段时间给出了如何使用BeautifulSoup。哪种语言是编写网络机器人的最佳编程语言?

oug3syen

oug3syen3#

我真的很喜欢BeautifulSoup。我是Python的新手,但发现它很容易开始屏幕抓取。我写了一个关于screen scraping with beautiful soup的简短教程。我希望它能有所帮助。

5tmbdcev

5tmbdcev4#

根据问题的数据库部分,使用正确的工具来完成这项工作。弄清楚你想做什么,你想如何组织你的数据,你需要什么样的访问,等等。然后决定一个非SQL的解决方案是否适合你的项目。
我认为no-sql解决方案将在各种不同的应用程序中保留下来。我们已经在我过去20年参与的各种项目中实现了它们,在SQL数据库中没有将其命名为no-sql,因此应用程序存在。因此,至少有必要了解一些背景知识,了解它们提供了什么,以及哪些产品迄今为止运行良好。
设计好您的项目,并保持持久层的独立性,如果您认为有必要更改数据库解决方案,那么您应该能够轻松地更改它。

t3irkdon

t3irkdon5#

我建议在学习时从较低级别开始- Scrapy是一个高级框架。阅读一本好的Python书籍,如Dive Into Python,然后看看lxml来解析HTML。

xoefb8l8

xoefb8l86#

在深入研究Scrapy之前,先看看Udacity的计算机科学导论:https://www.udacity.com/course/cs101
这是一个熟悉Python的好方法,一旦你有了一些Python的基本知识,你实际上会更快地学习Scrapy。

相关问题