python爬虫学习过程记录
项目为爬取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''>
最新文章
- 【spring】 <;tx:annotation-driven />; 的理解 【转载的】
- JS--事件模块
- JAVA 多态和异常处理作业——动手动脑以及课后实验性问题
- mysql空间数据相关操作
- centos 6安装报错
- 简单总结焦点事件、Event事件对象、冒泡事件
- 常用Oracle分析函数详解 [http://www.cnblogs.com/benio/archive/2011/06/01/2066106.html]
- JSP EL表达式 param、paramValues的使用
- Pytoch机器学习乱玩(一):数学建模作业,体重与心率
- P1582 倒水
- Properties读取properties配置文件
- Confluence 6 Oracle 驱动输入你的数据库细节
- 线段树模板hdu 1754:I Hate It
- ecplise debug 无法命中断点 一直在加载中
- AtomicInteger和count++的比较
- QQ在开发中的应用
- Stable Match
- Linux 常用的压缩命令有 gzip 和 zip
- drupal7 hook_validate
- Unity3D面试——真实的面试,unity3d面试