项目为爬取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''>

最新文章

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

热门文章

  1. 关于什么时候用,怎么用:ExecuteNonQuery(),还有其它返回值
  2. python设计模式之责任链模式
  3. WIN10家庭版安装ORACLE的问题
  4. leetcode刷题记录——数组与矩阵
  5. 【API进阶之路】逆袭!用关键词抽取API搞定用户需求洞察
  6. JavaScript学习系列博客_12_JavaScript中的break、continue关键字
  7. 仿京东BOE官网 html代码
  8. latex:在公式之中和公式之间插入说明文字和标点符号
  9. Hive 常见面试题(二)
  10. antd-vue中table行高亮效果实现