Python中数据收集不可不知的库!
1. Scrapy
要想编写一个Python网络爬虫来从网页上提取信息,Scrapy可能是大部分人第一个想到的Python库。
例如,使用者可以提取某城市所有餐厅的评论或是收集网购网站上某一种产品的所有评论。
对于该库最常见的用法是利用它来识别出现在网站页面上那些有趣的信息模式,无论这些信息是以URL的形式出现还是以XPath的形式出现。
一旦理清了这些信息的模式,Scrapy就可以协助使用者自动提取所需信息,并将其整理为表格或JSON格式的数据结构。
使用pip即可轻松安装Scrapy。
2. Selenium
Selenium设计者的初衷是将其打造成一个自动网站测试框架,但开发者们发现将其用作网页数据抓取工具的效果更佳。
使用者在感兴趣的网站上已经进行了交互行为之后,Selenium一般能派上用场。
比如说,使用者可能需要在网站上注册一个账户,登陆自己的账户,再点击几个按钮或是链接才能找到自己想要的内容。
上述链接被定义为JavaScript函数。在这一情况下,要应用Scrapy或者Beautiful Soup可能都不是很便捷,但使用Selenium就可以轻而易举地完成这一过程。
但应当注意,Selenium比普通的抓取库运行速度要慢得多。这是因为Selenium会将Chrome这样的浏览器初始化并模拟浏览器代码定义的所有行为。
因此,在处理URL模式或Xpaths时,最好还是使用Scrapy或者Beautiful Soup,不到万不得已不要使用Selenium。
3. BeautifulSoup
Beautiful Soup是另一个可以用来收集网站内容的Python库。业界普遍认为,学习BeautifulSoup所需时间比学习Scrapy所需时间要短很多。
除此之外,Beautiful Soup更适合应用于规模相对较小的问题或一次性的任务。
Scrapy要求使用者开发自己的“爬虫”并通过命令行进行操作,而使用Beautiful Soup只需将其功能导入计算机中并联机使用即可。因此,使用者甚至可以将Beautiful Soup应用于自己的Jupyternotebook。
更多Python知识,请关注云海天Python教程!!
来源:PY学习网:原文地址:https://www.py.cn/article.html