项目为爬取Python词条的信息。
项目代码在我的码云仓库。
https://gitee.com/libo-sober/learn-python/tree/master/baike_spider
1.开发轻量级爬虫
1.1爬虫简介
爬虫:一段自动抓取互联网信息的程序。
自动访问互联网并且提取数据。
价值:互联网数据为我所用。
1.2简单爬虫架构
运行流程:
1.3URL管理器
URL管理器:管理待抓取URL集合和已抓取URL集合。防止重复抓取和循环抓取。
实现方式:
一般大公司都存在缓存数据库中。
1.4网页下载器
网页下载器:将互联网上URL对应的网页下载到本地的工具。
Python有哪几种网页下载器?
1.5 urllib2
urllib2下载网页方法1:最简洁方法
python3中把urllib2改为了urllib.request
对应到代码:
urllib2下载网页方法2:添加data、http header
urllib2下载网页方法3:添加特殊情景的处理器。
有些网页需要登录才能处理,需要添加Cookie的处理;
有些网页需要代理才能访问,使用ProxyHandler;
有些网页使用Https加密访问,使用HTTPSHandler;
有些网页url是相互自动跳转的关系,使用HTTPRedirectHandler。
对应到代码:
1.6网页解析器
网页解析器:从网页中提取出有价值的数据的工具。
python有哪几种网页解析器?
结构化解析-DOM(Document Object Model)树
1.7 Beautiful Soup
python第三方库,用于从HTML或XML中提取数据
安装并测试beautifulsoup4
安装:pip install beautifulsoup4
测试:import bs4
语法:
例如:
创建BeautifulSoup对象
搜索节点(find_all, find)
访问节点信息
1.8 实例爬虫
目标:百度百科python词条相关词条网页-标题和简介。
入口页:https://baike.baidu.com/item/Python/407313
词条页面URL:/item/opencv 这不是一个完整的URL,需要补全。
数据格式:
标题:
《dd class="lemmaWgt-lemmaTitle-title">
Python
简介:
《div class=''para''>
由于网站在不断升级,所以爬取代码要跟随目标网站更改需求。
源代码太长就不贴了,大家可以去我的资源里边下载。我设置了0积分币,方便大家下载。
免费获取项目代码传送门