美文网首页大数据 爬虫Python AI Sqlpython学习我爱编程
爬虫教程」Python做一个简单爬虫,小白也能看懂的教程

爬虫教程」Python做一个简单爬虫,小白也能看懂的教程

作者: 小天真_5eeb | 来源:发表于2018-11-18 10:04 被阅读1次

    俗话说“巧妇难为无米之炊”,除了传统的数据源,如历史年鉴,实验数据等,很难有更为简便快捷的方式获得数据,在目前互联网的飞速发展写,大量的数据可以通过网页直接采集,“网络爬虫”应运而生,本篇将会讲解简单的网络爬虫编写方法。

    开发环境

    每个人的开发环境各异,下面上是我的开发环境,对于必须的工具,我会加粗。

    windows10(操作系统),pycharm(IDE,当然,用eclipse和sublime均可)python(这个必须的额,我下面实现的代码版本是2.7),BeautifulSoup4urllib2等。

    什么是爬虫

    爬虫是自动从互联网上获取数据的程序

    下面是一张对简单爬虫的结构进行描述的图,其主体是URL管理器,网页下载器和网页解析器。爬虫调度端指的是对爬虫发布指令的端口,人可以对其进行设置,爬什么内容,怎么爬,需要进行什么其他的操作等,通过爬虫,就能够得到所需的有价值的数据。

    下面一张时序图图简单讲述了爬虫的运行流程。从上往下看,调度器访问URL管理器查看其中由于可访问的待爬取的URL,如果返回是即将1个待爬的URL传给调取器,调度器让下载器将URL对应的网页下载下来,返回给调度器,调度器将下载的网页发给解析器进行解析,解析之后返回到调度器,此时数据已经初步形成,可以开始进一步的使用。如此循环直到URL管理器为空或者数据量足够大。

    URL管理器

    URL管理器:管理待抓取的URL集合和已抓取URL集合。主要实现下面种功能。

    添加新URL到待爬集合中。

    判断待添加URL是否在容器中。

    获取待爬取URL。

    判断是否还有待爬取URL。

    将待爬取URL移动到已爬取。

    实现方式:

    内存:python的set集合

    关系数据库,MySQL,urls(url, is_crawled)

    缓存数据库:redis的set集合

    网页下载器

    网页下载器:将互联网上URL对应网页下载到本地的工具。

    我刚整理了一套2018最新的0基础入门和进阶教程,无私分享,加Python学习q u n :227-435-450即可获取,内附:开发工具和安装包,以及系统学习路线图python的

    网页下载器

    urllib2-python-官方基础模块

    requests-第三方更强大

    urllab2下载器使用方法:

    最简捷方法:直接写出链接并且请求。

    添加data、http helper,data和httphelper能分别为下载提供更加精确的目标,同时可以模仿浏览器对网页进行访问,能攻破一些反爬虫策略。

    添加特殊情景处理器,例如账号密码输入等,有些网站只有在用户登录时才能浏览,而情景处理器就能模拟这形式。

    运行实例:

    网页解析器

    网页解析器:从网页中提取有价值数据的工具,侧面而言,也能看做是整合数据的一个步骤,但是由于爬取数据复杂度较高,所以不会将太多的数据整合、集成、清洗任务放在这里,只是进行简单的整合,成为数组或者矩阵等而已。

    Beautiful Soup

    python第三方库,用于从HTML或者XML中提取数据,有自己的官网,同时还有API文档。

    其下载方式可在API文档中找到。

    用法介绍如下图所示。BeautifulSoup对象创建之后能够去搜索节点,根据节点名、属性值或者是节点文字等信息进行查询,能够达到精确搜索的目的,减少垃圾数据获取。

    举一个例子,对一个标签:

    能有三种方式搜索

    节点名称:a

    节点属性:"href='123.html',和class=article_link"

    节点内容:python

    语法使用如下:

    下面是具体的案例:

    相关文章

      网友评论

        本文标题:爬虫教程」Python做一个简单爬虫,小白也能看懂的教程

        本文链接:https://www.haomeiwen.com/subject/afwwfqtx.html