Python3.x开发简单爬虫及案例学习


什么是爬虫


一段自动抓取互联网信息的程序,可以从一个URL出发,访问它所关联的URL,提取我们所需要的数据。也就是说爬虫是自动访问互联网并提取数据的程序。

Python3.x开发简单爬虫及案例学习_第1张图片

爬虫的价值

将互联网上的数据为我所用,开发出属于自己的网站或APP

Python3.x开发简单爬虫及案例学习_第2张图片

爬虫框架


爬虫调度端:用来启动、执行、停止爬虫,或者监视爬虫中的运行情况

在爬虫程序中有三个模块URL管理器:对将要爬取的URL和已经爬取过的URL这两个数据的管理

网页下载器:将URL管理器里提供的一个URL对应的网页下载下来,存储为一个字符串,这个字符串会传送给网页解析器进行解析

网页解析器:一方面会解析出有价值的数据,另一方面,由于每一个页面都有很多指向其它页面的网页,这些URL被解析出来之后,可以补充进URL管理器

这三部门就组成了一个简单的爬虫架构,这个架构就能将互联网中所有的网页抓取下来

Python3.x开发简单爬虫及案例学习_第3张图片

动态执行流程

Python3.x开发简单爬虫及案例学习_第4张图片

URL管理器


防止重复抓取和循环抓取,最严重情况两个URL相互指向就会形成死循环

Python3.x开发简单爬虫及案例学习_第5张图片


三种实现方式


Python内存set集合:set集合支持去重的作用

Mysql:url(访问路径)is_crawled(是否访问)

Redis:使用Redis性能最好,且Redis中也有set类型,可以去重。不懂得同学可以看下Redis的介绍

Python3.x开发简单爬虫及案例学习_第6张图片

urllib模块

本文使用urllib实现

urllib2是python自带的模块,不需要下载。

urllib2在python3.x中被改为urllib.request

〖★ 三种实现方式 ★〗     


1

方式一

Python3.x开发简单爬虫及案例学习_第7张图片

2

方式二

Python3.x开发简单爬虫及案例学习_第8张图片

3

使用cookie

Python3.x开发简单爬虫及案例学习_第9张图片


网页解析器和BeautifulSoup第三方模块


Python3.x开发简单爬虫及案例学习_第10张图片

Python3.x开发简单爬虫及案例学习_第11张图片

Python3.x开发简单爬虫及案例学习_第12张图片

测试是否安装bs4

Python3.x开发简单爬虫及案例学习_第13张图片

方法介绍

Python3.x开发简单爬虫及案例学习_第14张图片Python3.x开发简单爬虫及案例学习_第15张图片Python3.x开发简单爬虫及案例学习_第16张图片

实例测试

html采用官方案例

Python3.x开发简单爬虫及案例学习_第17张图片

获取所有的链接

Python3.x开发简单爬虫及案例学习_第18张图片

爬虫开发实例(目标爬虫百度百科)

Python3.x开发简单爬虫及案例学习_第19张图片

 

入口:http://baike.baidu.com/item/Python


分析URL格式:防止访问无用路径 http://baike.baidu.com/item/{标题}


数据:抓取百度百科相关Python词条网页的标题和简介


通过审查元素得标题元素为 :class=”lemmaWgt-lemmaTitle-title”


简介元素为:class=”lemma-summary”


页面编码:UTF-8


作为定向爬虫网站要根据爬虫的内容升级而升级如运行出错可能为百度百科升级,此时则需要重新分析目标


创建spider_main.py

Python3.x开发简单爬虫及案例学习_第20张图片

  创建url_manager.py

Python3.x开发简单爬虫及案例学习_第21张图片

创建html_downloader.py

Python3.x开发简单爬虫及案例学习_第22张图片

创建html_parser.py

Python3.x开发简单爬虫及案例学习_第23张图片

创建html_output.py

Python3.x开发简单爬虫及案例学习_第24张图片

作者:loading

源自:www.androidchina.net/8417.html

声明:文章著作权归作者所有,如有侵权,请联系小编删除

你可能感兴趣的:(Python语言)