不知道Python爬虫?一篇文章搞定

优采云 发布时间: 2022-05-23 06:15

  不知道Python爬虫?一篇文章搞定

  

  爬虫即网络爬虫,英文是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解析包。

  END

  

  往期精选

  

  关注雷课

  学习干货

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线