Python3.x开发简单爬虫及案例学习
什么是爬虫
一段自动抓取互联网信息的程序,可以从一个URL出发,访问它所关联的URL,提取我们所需要的数据。也就是说爬虫是自动访问互联网并提取数据的程序。
爬虫的价值
将互联网上的数据为我所用,开发出属于自己的网站或APP
爬虫框架
爬虫调度端:用来启动、执行、停止爬虫,或者监视爬虫中的运行情况
在爬虫程序中有三个模块URL管理器:对将要爬取的URL和已经爬取过的URL这两个数据的管理
网页下载器:将URL管理器里提供的一个URL对应的网页下载下来,存储为一个字符串,这个字符串会传送给网页解析器进行解析
网页解析器:一方面会解析出有价值的数据,另一方面,由于每一个页面都有很多指向其它页面的网页,这些URL被解析出来之后,可以补充进URL管理器
这三部门就组成了一个简单的爬虫架构,这个架构就能将互联网中所有的网页抓取下来
动态执行流程
URL管理器
防止重复抓取和循环抓取,最严重情况两个URL相互指向就会形成死循环
三种实现方式
Python内存set集合:set集合支持去重的作用
Mysql:url(访问路径)is_crawled(是否访问)
Redis:使用Redis性能最好,且Redis中也有set类型,可以去重。不懂得同学可以看下Redis的介绍
urllib模块
本文使用urllib实现
urllib2是python自带的模块,不需要下载。
urllib2在python3.x中被改为urllib.req
uest〖★
三种实现方式
★〗
1
方式一
2
方式二
3
使用cookie
网页解析器和BeautifulSoup第三方模块
测试是否安装bs4
方法介绍
实例测试
html采用官方案例
获取所有的链接
爬虫开发实例(目标爬虫百度百科)
“
入口: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创建url_manager.py
创建html_downloader.py
创建html_parser.py
创建html_output.py
作者:loading
源自:www.androidchina.net/8417.html
声明:文章著作权归作者所有,如有侵权,请联系小编删除
- 练最简单的体式,塑最美最帅的身材,你准备好了吗?
- 抽烟多年的烟民,突然戒烟身体会受到伤害吗?答案没那么简单!
- 超好吃的几道下饭菜,简单快捷,营养美味,中秋节做给家人吃吧
- 别怪年轻人“懒婚”,背后的问题不简单
- 跑步对减肥的作用大吗?
- 腰部减肥绝招,减掉腰部两边赘肉,方法竟这么简单!
- 小腹线条不够美?简单几个瑜伽动作,努力练好,人鱼线指日可待
- 甲醛检测门道多:设备动手脚很简单 当面也能作假
- 检测员曝甲醛检测背后门道:设备动手脚很简单 当面也能作假
- 开发区辖区内德胜路沿线7个路口 都装上了这种“救命”装置