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

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

什么是爬虫



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

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

爬虫的价值

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

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

爬虫框架

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

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

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

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

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

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

动态执行流程

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

URL管理器



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

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



三种实现方式



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

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

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

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

urllib模块

本文使用urllib实现

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

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

uest

〖★

三种实现方式

★〗

    



1

方式一

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

2

方式二

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

3

使用cookie

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

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

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

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

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

测试是否安装bs4

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

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

方法介绍

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

实例测试

html采用官方案例

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

获取所有的链接



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

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

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

 

入口: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开发简单爬虫及案例学习

  创建url_manager.py

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

创建html_downloader.py

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

创建html_parser.py

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

创建html_output.py

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

作者:loading

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

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

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