Python的爬虫框架有哪些?

作者&投稿:野胆 (若有异议请与网页底部的电邮联系)
Python有哪些常见的,好用的爬虫框架~

目前实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来写爬虫。但很多人选择Python来写爬虫,原因是Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实现你想要的功能。更重要的,Python也是数据挖掘和分析的好能手。那么,今天IPIDEA就带大家来了解Python爬虫一般用什么框架比较好。


Beautiful Soup:整合了一些常用爬虫需求。它是一个可以从HTML或XML文件中提取数据的Python库。它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的式.Beautiful Soup会帮你节省数小时甚至数天的工作时间。Beautiful Soup的缺点是不能加载JS。

selenium:这是一个调用浏览器的driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。Selenium是自动化测试工具,它支持各种浏览器,包括 Chrome,Safari,Firefox等主流界面式浏览器,如果在这些浏览器里面安装一个 Selenium 的插件,可以方便地实现Web界面的测试. Selenium支持浏览器驱动。Selenium支持多种语言开发,比如 Java,C,Ruby等等,PhantomJS 用来渲染解析JS,Selenium 用来驱动以及与Python的对接,Python进行后期的处理。

Scrapy:Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。它是很强大的爬虫框架,可以满足简单的页面爬取,比如可以明确获知url pattern的情况。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。但是对于稍微复杂一点的页面,如weibo的页面信息,这个框架就满足不了需求了。它的特性有:HTML, XML源数据 选择及提取 的内置支持;提供了一系列在spider之间共享的可复用的过滤器(即 Item Loaders),对智能处理爬取数据提供了内置支持。

Portia:是一个开源可视化爬虫工具,可让使用者在不需要任何编程知识的情况下爬取网站!简单地注释自己感兴趣的页面,Portia将创建一个蜘蛛来从类似的页面提取数据。简单来讲,它是基于scrapy内核;可视化爬取内容,不需要任何开发专业知识;动态匹配相同模板的内容。

cola:是一个分布式的爬虫框架,对于用户来说,只需编写几个特定的函数,而无需关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。项目整体设计有点糟,模块间耦合度较高。

PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。Python脚本控制,可以用任何你喜欢的html解析包。

爬虫框架需要URL、页面下载器、爬虫调度器、网页解析器、数据处理
爬虫框架要处理很多的URL,我们需要设计一个队列存储所有要处理的 URL,这种先进先出的数据结构非常符合这个需求。 将所有要下载的URL存储在待处理队列中,每次下载会取出一个,队列中就会少一个。我们知道有些URL的下载会有反爬虫策略,所以针对这些请求需要做一些特殊的设置,进而可以对URL进行封装抽出 Request。

页面下载器如果没有,用户就要编写网络请求的处理代码,这无疑对每个 URL 都是相同的动作。 所以在框架设计中我们直接加入它就好了,至于使用什么库来进行下载都是可以的,你可以用 httpclient 也可以用okhttp在本文中我们使用一个超轻量级的网络请求库 oh-my-request (没错,就是在下搞的)。优秀的框架设计会将这个下载组件置为可替换,提供默认的即可。

爬虫调度器,调度器和我们在开发 web 应用中的控制器是一个类似的概念,它用于在下载器、解析器之间做流转处理。 解析器可以解析到更多的 URL 发送给调度器,调度器再次的传输给下载器,这样就会让各个组件有条不紊的进行工作。

网页解析器我们知道当一个页面下载完成后就是一段 HTML 的 DOM 字符串表示,但还需要提取出真正需要的数据以前的做法是通过String的API 或者正则表达式的方式在DOM 中搜寻,这样是很麻烦的,框架 应该提供一种合理、常用、方便的方式来帮助用户完成提取数据这件事儿。常用的手段是通过xpath或者css选择器从DOM中进行提取,而且学习这项技能在几乎所有的爬虫框架中都是适用的。

数据处理,普通的爬虫程序中是把网页解析器和数据处理器合在一起的,解析到数据后马上处理。 在一个标准化的爬虫程序中,他们应该是各司其职的,我们先通过解析器将需要的数据解析出来,可能是封装成对象。然后传递给数据处理器,处理器接收到数据后可能是存储到数据库,也可能通过接口发送给老王。

向大家推荐十个Python爬虫框架。

 1、Scrapy:Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。它是很强大的爬虫框架,可以满足简单的页面爬取,比如可以明确获知url pattern的情况。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。但是对于稍微复杂一点的页面,如weibo的页面信息,这个框架就满足不了需求了。它的特性有:HTML, XML源数据 选择及提取 的内置支持;提供了一系列在spider之间共享的可复用的过滤器(即 Item Loaders),对智能处理爬取数据提供了内置支持。 

2、Crawley:高速爬取对应网站的内容,支持关系和非关系数据库,数据可以导出为JSON、XML等。

3、Portia:是一个开源可视化爬虫工具,可让使用者在不需要任何编程知识的情况下爬取网站!简单地注释自己感兴趣的页面,Portia将创建一个蜘蛛来从类似的页面提取数据。简单来讲,它是基于scrapy内核;可视化爬取内容,不需要任何开发专业知识;动态匹配相同模板的内容。

4、newspaper:可以用来提取新闻、文章和内容分析。使用多线程,支持10多种语言等。作者从requests库的简洁与强大得到灵感,使用Python开发的可用于提取文章内容的程序。支持10多种语言并且所有的都是unicode编码。

5、Python-goose:Java写的文章提取工具。Python-goose框架可提取的信息包括:文章主体内容、文章主要图片、文章中嵌入的任何Youtube/Vimeo视频、元描述、元标签。

6、Beautiful Soup:名气大,整合了一些常用爬虫需求。它是一个可以从HTML或XML文件中提取数据的Python库。它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式.Beautiful Soup会帮你节省数小时甚至数天的工作时间。Beautiful Soup的缺点是不能加载JS。

7、mechanize:它的优点是可以加载JS。当然它也有缺点,比如文档严重缺失。不过通过官方的example以及人肉尝试的方法,还是勉强能用的。

8、selenium:这是一个调用浏览器的driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。Selenium是自动化测试工具,它支持各种浏览器,包括 Chrome,Safari,Firefox等主流界面式浏览器,如果在这些浏览器里面安装一个 Selenium 的插件,可以方便地实现Web界面的测试. Selenium支持浏览器驱动。Selenium支持多种语言开发,比如 Java,C,Ruby等等,PhantomJS 用来渲染解析JS,Selenium 用来驱动以及与Python的对接,Python进行后期的处理。

9、cola:是一个分布式的爬虫框架,对于用户来说,只需编写几个特定的函数,而无需关注分布式运行的细节。任务会自动分配到多台机器上,整个过程对用户是透明的。项目整体设计有点糟,模块间耦合度较高。

10、PySpider:一个国人编写的强大的网络爬虫系统并带有强大的WebUI。采用Python语言编写,分布式架构,支持多种数据库后端,强大的WebUI支持脚本编辑器,任务监视器,项目管理器以及结果查看器。Python脚本控制,可以用任何你喜欢的html解析包。

以上就是分享的Python爬虫一般用的十大主流框架。这些框架的优缺点都不同,大家在使用的时候,可以根据具体场景选择合适的框架。



1)Scrapy:很强大的爬虫框架,可以满足简单的页面爬取(比如可以明确获知url pattern的情况)。用这个框架可以轻松爬下来如亚马逊商品信息之类的数据。但是对于稍微复杂一点的页面,如weibo的页面信息,这个框架就满足不了需求了。框架的话可以看看优就业的免费课,好好学习一下。
(2)Crawley: 高速爬取对应网站的内容,支持关系和非关系数据库,数据可以导出为JSON、XML等
(3)Portia:可视化爬取网页内容
(4)newspaper:提取新闻、文章以及内容分析
(5)python-goose:java写的文章提取工具
(6)Beautiful Soup:名气大,整合了一些常用爬虫需求。缺点:不能加载JS。
(7)mechanize:优点:可以加载JS。缺点:文档严重缺失。不过通过官方的example以及人肉尝试的方法,还是勉强能用的。
(8)selenium:这是一个调用浏览器的driver,通过这个库你可以直接调用浏览器完成某些操作,比如输入验证码。
(9)cola:一个分布式爬虫框架。项目整体设计有点糟,模块间耦合度较高。

Python爬虫工作原理:

Python爬虫通过URL管理器,判断是否有待爬URL,如果有待爬URL,通过调度器进行传递给下载器,下载URL内容,并通过调度器传送给解析器,解析URL内容,并将价值数据和新URL列表通过调度器传递给应用程序,并输出价值信息的过程。

Python爬虫常用框架有:

grab:网络爬虫框架;

scrapy:网络爬虫框架,不支持Python3;

pyspider:一个强大的爬虫系统;

cola:一个分布式爬虫框架;

portia:基于Scrapy的可视化爬虫;

restkit:Python的HTTP资源工具包。它可以让你轻松地访问HTTP资源,并围绕它建立的对象。

demiurge:基于PyQuery的爬虫微框架。



Python是现在非常流行的编程语言,而爬虫则是Python语言中最典型的应用,下面是ipidea全球http总结的高效Python爬虫框架,大家看看是否都用过呢。

Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。

Crawley可以高速爬取对应网站的内容,支持关系和非关系数据库,数据可以导出为JSON、XML等。

Pyspider 是一个用python实现的功能强大的网络爬虫系统,能在浏览器界面上进行脚本的编写,功能的调度和爬取结果的实时查看,后端使用常用的数据库进行爬取结果的存储,还能定时设置任务与任务优先级等。

Portia是一个开源可视化爬虫工具,可让在不需要任何编程知识的情况下爬取网站,简单地注释感兴趣的页面,Portia将创建一个蜘蛛来从类似的页面提取数据。

Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库,它能够通过你喜欢的转换器实现惯用的文档导航、查找、修改文档的方式。Beautiful Soup会帮你节省数小时甚至数天的工作时间。

Grab是一个用于构建Web刮板的Python框架。借助Grab,可以构建各种复杂的网页抓取工具,从简单的5行脚本到处理数百万个网页的复杂异步网站抓取工具。Grab提供一个API用于执行网络请求和处理接收到的内容,例如与HTML文档的DOM树进行交互。

  • re:正则表达式官方库,不仅仅是学习爬虫要使用,在其他字符串处理或者自然语言处理的过程中,这是绕不过去的一个库,强烈推荐掌握。

  • BeautifulSoup:方便易用,好上手,推荐掌握。通过选择器的方式选取页面元素,并获取对应的内容。

  • lxml:使用

    lxml.etree

    将字符串转换之后,我们可以使用XPath表达式来解析网页,终极推荐。XPath对于网页解析的支持非常强大,而且很容易上手。它本来是设计出来进行XML元素选择的,但是它同样支持HTML。

  • pyquery:另一个强大的解析库,感兴趣的可以学习下。




如何用python实现网络爬虫
挺简单的,我尝试过,就三步,用爬虫框架scrapy 定义item类 开发spider类(是核心)开发pipeline 看一看 疯狂python讲义 这本书,对学习python挺有帮助的

如何学习python爬虫
获取网页信息的过程。Python中爬虫相关的包很多:urllib、requests、bs4、scrapy、pyspider 等, 建议从requests+Xpath 开始 ,requests 负责连接网 站,返回网页,Xpath 用于解析网页,便于抽取数据。如果你用过 BeautifulSoup,会发现 Xpath 要省事不少,一层一层检查元素代码的工作,全都省略了。这样下来...

python常用的8个框架
它也提供了多种类型爬虫的基类,如BaseSpider、.sitemap爬虫等,最新版本又提供了web2.0爬虫的支持。Scrap,是碎片的意思,这个Python的爬虫框架叫Scrapy。8.pandas pandas是基于NumPy的一种工具,该工具是为了解决数据分析任务而创建的。Pandas纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集...

python里面的爬虫是什么?
世界上80%的爬虫是基于Python开发的,学好爬虫技能,可为后续的大数据分析、挖掘、机器学习等提供重要的数据源。什么是爬虫?网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有...

想自己动手写网络爬虫,但是不会python,可以么?
01 Python基础 这里主要是针对没有任何Python编程基础的朋友,要学习Python爬虫,首先,最基本的就是要掌握Python常见语法,包括变量、元组、字典、列表、函数、类、文件处理、正则表达式等,这个网上教程非常多,直接搜索就能找到,包括菜鸟教程、慕课网、网易云课堂等,花个三四天时间学习一下,非常容易入门,...

python爬虫的工作步骤
当前处于一个大数据的时代,一般网站数据来源有二:网站用户自身产生的数据和网站从其他来源获取的数据,今天要分享的是如何从其他网站获取你想要的数据。目前最适合用于写爬虫的语言是python,python中最受欢迎的爬虫框架是scrapy,本文围绕scrapy来展开讲解爬虫是怎么工作的。1.如下图所示,爬虫从编写的spider...

Python爬虫如何写?
Python的爬虫库其实很多,像常见的urllib,requests,bs4,lxml等,初始入门爬虫的话,可以学习一下requests和bs4(BeautifulSoup)这2个库,比较简单,也易学习,requests用于请求页面,BeautifulSoup用于解析页面,下面我以这2个库为基础,简单介绍一下Python如何爬取网页静态数据和网页动态数据,实验环境win10+...

python除了用scrapy框架做网络爬虫还有什么其他的框架
你好,下面是一些相关的库和介绍:(1)Crawley: 高速爬取对应网站的内容,支持关系和非关系数据库,数据可以导出为JSON、XML等(2)Portia:可视化爬取网页内容(3)newspaper:提取新闻、文章以及内容分析(4)python-goose:java写的文章提取工具(5)Beautiful Soup:名气大,整合了一些常用爬虫需求。缺点:不能...

python爬虫怎么做?
Python爬虫入门(第1部分)如何使用BeautifulSoup对网页内容进行提取 Python爬虫入门(第2部分)爬虫运行时数据的存储数据,以SQLite和MySQL作为示例 Python爬虫入门(第3部分)使用seleniumwebdriver对动态网页进行抓取 Python爬虫入门(第4部分)讨论了如何处理网站的反爬虫策略 Python爬虫入门(第5部分)对Python的Scrapy...

Python爬虫Scrapy框架简单使用方法
详情请查看视频回答

巨鹿县18717381135: python什么框架比较好 -
东邵福德: 从GitHub中整理出的15个最受欢迎的Python开源框架.这些框架包括事件I/O,OLAP,Web开发,高性能网络通信,测试,爬虫等.Django:PythonWeb应用开发框架Django应该是最出名的Python框架,GAE甚至Erlang都有框架受它影响.Django...

巨鹿县18717381135: 用Python写爬虫,用什么方式,框架比较好 -
东邵福德: 写爬虫的话,可以看看神箭手云爬虫开发文档,里面的教程很详细,各种基本爬虫基础和进阶开发知识都有介绍,而且上面还有不少爬虫源码分享.神箭手云爬虫开发者文档:

巨鹿县18717381135: 分布式爬虫框架有哪些
东邵福德: 1.ScrapyScrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中..用这个框架可以轻松爬下来如亚马逊商品信息之类的数据.2.PySpiderpyspider 是一个用...

巨鹿县18717381135: python爬虫一般用哪个模块 -
东邵福德: XPath 是一门在 XML 文档中查找信息的语言.python的爬虫框架scrapy不是用正则匹配来查找字符串,而是用xpath.

巨鹿县18717381135: python爬虫产品有哪些做的比较好的? -
东邵福德: 知道一个python爬虫产品,瑞雪采集云,还是有一些特点的:瑞雪采集云是一个PaaS在线开发平台,与图形配置化爬虫客户端工具相比,瑞雪采集云提供的是通用采集能力,能够满足企业客户数据采集业务的长期需求.主要特点如下:(一) ...

巨鹿县18717381135: 网站爬虫有哪些,python语言和java语言 -
东邵福德: 常见语言都可以实现爬虫JavaPythonRuby等等. 一般用python挺多的,都是使用Scrapy.python的爬虫框架,scrapy下载一个scrapy模块,结合lxml可以很快实现抓取,非常方便.可以多线程,自由的设定处理方式,抓取间隔,头信息等.

巨鹿县18717381135: PHP或者python进行数据采集和分析,有什么比较成熟的框架 -
东邵福德: 比较成熟的爬虫框架有:(1)scrapy,鼎鼎大名,目前也支持到py3了.(2)pyspider,国人开发的,带有状态界面,也挺不错.

巨鹿县18717381135: 支持python3的爬虫框架有哪些 -
东邵福德: py3的到来势在必行,各个框架都已经支持放心使用,scrapy,spider等就很好了

巨鹿县18717381135: 开源爬虫框架各有什么优缺点? -
东邵福德: 首先爬虫框架有三种1. 分布式爬虫:Nutch 2. JAVA单机爬虫:Crawler4j,WebMagic,WebCollector 3. 非JAVA单机爬虫:scrapy 第一类:分布式爬虫 优点: 1. 海量URL管理 2. 网速快 缺点: 1. Nutch是为搜索引擎设计的爬虫,大多数用户是需要...

巨鹿县18717381135: python主要可以做什么 -
东邵福德: 如果您正在考虑学习Python—或者您最近才开始学习—您可能会问自己: “我用Python到底能做什么?” 这个问题很难回答,因为Python有很多应用程序. 但随着时间的推移,我发现Python有3种主要的流行应用: Web开发数据科学——包括...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网