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''>
python爬虫学习过程记录的更多相关文章
- Python爬虫个人记录(三)爬取妹子图
这此教程可能会比较简洁,具体细节可参考我的第一篇教程: Python爬虫个人记录(一)豆瓣250 Python爬虫个人记录(二)fishc爬虫 一.目的分析 获取煎蛋妹子图并下载 http://jan ...
- Python爬虫个人记录(二) 获取fishc 课件下载链接
参考: Python爬虫个人记录(一)豆瓣250 (2017.9.6更新,通过cookie模拟登陆方法,已成功实现下载文件功能!!) 一.目的分析 获取http://bbs.fishc.com/for ...
- python爬虫学习记录
爬虫基础 urllib,urllib2,re都是python自带的模块 urllib,urllib2区别是urllib2可以接受一个Request类的实例来设置url请求的headers,即可以模拟浏 ...
- Python爬虫学习记录【内附代码、详细步骤】
引言: 昨天在网易云课堂自学了<Python网络爬虫实战>,视频链接 老师讲的很清晰,跟着实践一遍就能掌握爬虫基础了,强烈推荐! 另外,在网上看到一位学友整理的课程记录,非常详细,可以优先 ...
- Python爬虫之记录一次下载验证码的尝试
好久没有写过爬虫的文章了,今天在尝试着做验证码相关的研究时,遇到了验证码的收集问题. 一般,验证码的加载都有着比较复杂的算法和加密在里边,但是笔者今天碰到的验证码却比较幸运,有迹可循.在此,给 ...
- Python爬虫实践 -- 记录我的第二只爬虫
1.爬虫基本原理 我们爬取中国电影最受欢迎的影片<红海行动>的相关信息.其实,爬虫获取网页信息和人工获取信息,原理基本是一致的. 人工操作步骤: 1. 获取电影信息的页面 2. 定位(找到 ...
- Python爬虫个人记录(四)利用Python在豆瓣上写一篇日记
涉及关键词:requests库 requests.post方法 cookies登陆 version 1.5(附录):使用post方法登陆豆瓣,成功! 缺点:无法获得登陆成功后的cookie,要使用js ...
- Python 爬虫个人记录(一)豆瓣电影250
一.爬虫环境 Python3.6 scrapy1.4 火狐浏览器 qq浏览器 二.scrapy shell 测试并获取 xpath 1.进入scrapy shell 2 .获取html fetch(' ...
- Python爬虫实践 -- 记录我的第一只爬虫
一.环境配置 1. 下载安装 python3 .(或者安装 Anaconda) 2. 安装requests和lxml 进入到 pip 目录,CMD --> C:\Python\Scripts,输 ...
随机推荐
- wordpress-技术博客主题推荐
推荐主题 1.WordStar 这个主题是干净的,以博客为中心,设计清晰,简单,直接的排版,可在各种各样的屏幕尺寸可读,适合多种语言. 效果图 还是非常简洁, 基本和CSDN差不多了 除了没有广告以外 ...
- # 火题小战 A.玩个球
火题小战 A.玩个球 题目描述 给你 \(n\) 种颜色的球,每个球有 \(k\) 个,把这 \(n\times k\) 个球排成一排,把每一种颜色的最左边出现的球涂成白色(初始球不包含白色),求有多 ...
- magento2 定时任务
* * * * * /usr/bin/php /www/wwwroot/m2.demo.evebit.cn/bin/magento cron:run | grep -v "Ran jobs ...
- openvswitch 流表操作
流表组成 每条流表规则由一些列字段组成,可以分为**基础字段.匹配字段和动作字段**三部分. 在打印流表时,在流表中还存在一些显示字段,如duration,idle_age等,此处把这些字段也暂时归之 ...
- 如何理解Vue.js中的ref及$ref,$
1.vue官方文档 首先我们来看一下vue官方是怎么解释的 好了,我知道很多刚接触的vue的小白其实都不太看的懂官方文档在讲什么,下面我用自己的话翻译一下. 2.ref以及$ref 通过 ref 标注 ...
- 算法-排序(1)k路平衡归并与败者树
const int MaxValue=; //根据实际情况选择最大值 void kwaymerge(Element *r,int k){ int i,q; r=new Element[k]; //在败 ...
- Hive 常见面试题(二)
1.Hive行转列和列转行如何实现? 行转列 使用 concat_ws 实现行转列. 例如: select user_id, concat_ws(',',collect_list(order_id)) ...
- 区块链入门到实战(12)之区块链 – 默克尔树(Merkle Tree)
目的:解决由于区块链过长,导致节点硬盘存不下的问题. 方法:只需保留交易的哈希值. 区块链作为分布式账本,原则上网络中的每个节点都应包含整个区块链中全部区块,随着区块链越来越长,节点的硬盘有可能放不下 ...
- Bellman-Ford算法 例题:P3371 单源最短路径
看到还没人用Bellman-Ford过,赶紧水一发 lz非常弱,求各位大佬轻喷qwq 洛谷题目传送门:P3371 0."松弛"操作 如果存在一条边\((u,v)\)通过中继的方式可 ...
- 冒泡排序的优化方案BubbleSort
<?php /** * 冒泡排序 * * ------------------------------------------------------------- * 思路分析:就是像冒泡一样 ...