趣文网 > 作文大全

不知道Python爬虫?这篇文章丢给他(内含框架结构)

2020-11-28 13:35:02
相关推荐

前言

爬虫即网络爬虫,英文是Web Spider。翻译过来就是网络上爬行的蜘蛛,如果把互联网看作一张大网,那么爬虫就是在大网上爬来爬去的蜘蛛,碰到想要的食物,就把他抓取出来。

我们在浏览器中输入一个网址,敲击回车,看到网站的页面信息。这就是浏览器请求了网站的服务器,获取到网络资源。那么,爬虫也相当于模拟浏览器发送请求,获得到HTML代码。HTML代码里通常包含了标签和文字信息,我们就从中提取到我们想要的信息。

通常爬虫是从某个网站的某个页面开始,爬取这个页面的内容,找到网页中的其他链接地址,然后从这个地址爬到下一个页面,这样一直不停的爬下去,进去批量的抓取信息。那么,我们可以看出网络爬虫就是一个不停爬取网页抓取信息的程序。

爬虫的基本流程

发起请求获取相应内容解析内容保存数据爬虫的用途

搜索引擎采集数据广告过滤用于数据分析

python爬虫架构组成

URL管理器:管理待爬取的url集合和已爬取的url集合,传送待爬取的url给网页下载器;网页下载器:爬取url对应的网页,存储成字符串,传送给网页解析器;网页解析器:解析出有价值的数据,存储下来,同时补充url到URL管理器。Python爬虫工作原理

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

Python爬虫常用框架有:

grab:网络爬虫框架(基于pycurl/multicur);scrapy:网络爬虫框架(基于twisted),不支持Python3;pyspider:一个强大的爬虫系统;cola:一个分布式爬虫框架;portia:基于Scrapy的可视化爬虫;restkit:Python的HTTP资源工具包。它可以让你轻松地访问HTTP资源,并围绕它建立的对象;demiurge:基于PyQuery的爬虫微框架。Python爬虫应用领域广泛,在网络爬虫领域处于霸主位置,Scrapy、Request、BeautifuSoap、urlib等框架的应用,可以实现爬行自如的功能,只要您数据抓取想法,Python爬虫均可实现!

十个Python爬虫框架

Scrapy:

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

Crawley:

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

Portia:

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

newspaper:

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

Python-goose:

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

Beautiful Soup:

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

mechanize:

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

selenium:

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

cola:

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

PySpider:

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

点击右上角关注小编将会持续为您带来相关资讯(您的关注就是小编最大的动力!)

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

仙人掌300字作文 春天的公园600字作文 享受生命中的温暖作文 我不怕因为半命题作文 身边熟悉的人的作文 糖果节作文600字 童年作文题目 关于坚持理想的作文 我的精神小屋作文 一个夏天的早晨作文 立意作文 关于微笑的作文600字 垒高自己作文800字 我的老师三百字作文 初中暑假作文600字 走着走着花就开了作文 禁毒安全作文 今天我很高兴作文 这也是一道风景作文 小白兔作文五年级 什么情结作文600字 关于惊喜的作文 关于诚信的高考满分作文 我与朋友再见时作文 长隆野生动物园游记作文 立春作文 20年后再相会作文 做与不做作文 作文华为 我的表弟作文500字