python爬虫基础知识点整理


Posted in Python onJune 02, 2020

首先爬虫是什么?

网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。

根据我的经验,要学习Python爬虫,我们要学习的共有以下几点:

  • Python基础知识
  • Python中urllib和urllib2库的用法
  • Python正则表达式
  • Python爬虫框架Scrapy
  • Python爬虫更高级的功能

1.Python基础学习

首先,我们要用Python写爬虫,肯定要了解Python的基础吧,万丈高楼平地起,不能忘啦那地基,哈哈,那么我就分享一下自己曾经看过的一些Python教程,小伙伴们可以作为参考。

1) Python学习网

Python学习网上有大量免费的Python入门教程,以便大家学习。不仅有视频教程,还有相应的问答版块,帮你解决学习过程中的问题,效果还是蛮不错的,内容基本上都是最基础的,入门开始的话,就这个吧

2) 廖雪峰Python教程

后来,我发现了廖老师的Python教程,讲的那是非常通俗易懂哪,感觉也是非常不错,大家如果想进一步了解Python就看一下这个吧。

3) 简明Python教程

还有一个我看过的,简明Python教程,感觉讲的也不错

学习网址:简明Python教程(https://woodpecker.org.cn/abyteofpython_cn/chinese/pr01.html#s01)

4) 汪海的实验室

这是我的本科实验室学长,入门的时候参考的他的文章,自己重新做了总结,后来这些系列文章又在他的基础上增加了一些内容。

学习网址:汪海的实验室(https://blog.csdn.net/wxg694175346/category_1418998_1.html)

2.Python urllib和urllib2 库的用法

urllib和urllib2库是学习Python爬虫最基本的库,利用这个库我们可以得到网页的内容,并对内容用正则表达式提取分析,得到我们想要的结果。这个在学习过程中我会和大家分享的。

3.Python 正则表达式

Python正则表达式是一种用来匹配字符串的强有力的武器。它的设计思想是用一种描述性的语言来给字符串定义一个规则,凡是符合规则的字符串,我们就认为它“匹配”了,否则,该字符串就是不合法的。这个在后面的博文会分享的。

4.爬虫框架Scrapy

如果你是一个Python高手,基本的爬虫知识都已经掌握了,那么就寻觅一下Python框架吧,我选择的框架是Scrapy框架。这个框架有什么强大的功能呢?下面是它的官方介绍:

HTML, XML源数据 选择及提取 的内置支持
提供了一系列在spider之间共享的可复用的过滤器(即 Item Loaders),对智能处理爬取数据提供了内置支持。
通过 feed导出 提供了多格式(JSON、CSV、XML),多存储后端(FTP、S3、本地文件系统)的内置支持
提供了media pipeline,可以 自动下载 爬取到的数据中的图片(或者其他资源)。
高扩展性。您可以通过使用 signals ,设计好的API(中间件, extensions, pipelines)来定制实现您的功能。
内置的中间件及扩展为下列功能提供了支持:
cookies and session 处理
HTTP 压缩
HTTP 认证
HTTP 缓存
user-agent模拟
robots.txt
爬取深度限制
针对非英语语系中不标准或者错误的编码声明, 提供了自动检测以及健壮的编码支持。
支持根据模板生成爬虫。在加速爬虫创建的同时,保持在大型项目中的代码更为一致。详细内容请参阅 genspider 命令。
针对多爬虫下性能评估、失败检测,提供了可扩展的 状态收集工具 。
提供 交互式shell终端 , 为您测试XPath表达式,编写和调试爬虫提供了极大的方便
提供 System service, 简化在生产环境的部署及运行
内置 Web service, 使您可以监视及控制您的机器
内置 Telnet终端 ,通过在Scrapy进程中钩入Python终端,使您可以查看并且调试爬虫
Logging 为您在爬取过程中捕捉错误提供了方便
支持 Sitemaps 爬取
具有缓存的DNS解析器

官方文档:http://doc.scrapy.org/en/latest/

等我们掌握了基础的知识,再用这个 Scrapy 框架吧!

扯了这么多,好像没多少有用的东西额,那就不扯啦!

知识点扩展:

爬虫基本原理

爬虫是 模拟用户在浏览器或者App应用上的操作,把操作的过程、实现自动化的程序

当我们在浏览器中输入一个url后回车,后台会发生什么?比如说你输入https://www.baidu.com

简单来说这段过程发生了以下四个步骤:

  1. 查找域名对应的IP地址。
  2. 浏览器首先访问的是DNS(Domain Name System,域名系统),dns的主要工作就是把域名转换成相应的IP地址向IP对应的服务器发送请求。
  3. 服务器响应请求,发回网页内容。
  4. 浏览器显示网页内容。

网络爬虫要做的,简单来说,就是实现浏览器的功能。通过指定url,直接返回给用户所需要的数据, 而不需要一步步人工去操纵浏览器获取。

到此这篇关于python爬虫基础知识点整理的文章就介绍到这了,更多相关Python2爬虫入门内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python解析发往本机的数据包示例 (解析数据包)
Jan 16 Python
解决python写的windows服务不能启动的问题
Apr 15 Python
Python中运行并行任务技巧
Feb 26 Python
Python中用于去除空格的三个函数的使用小结
Apr 07 Python
Python中列表与元组的乘法操作示例
Feb 10 Python
详解Python下Flask-ApScheduler快速指南
Nov 04 Python
在cmd中查看python的安装路径方法
Jul 03 Python
django-filter和普通查询的例子
Aug 12 Python
PyTorch中常用的激活函数的方法示例
Aug 20 Python
python+selenium 鼠标事件操作方法
Aug 24 Python
python利用递归方法实现求集合的幂集
Sep 07 Python
baselines示例程序train_cartpole.py的ImportError
May 20 Python
如何理解python面向对象编程
Jun 01 #Python
Python CSS选择器爬取京东网商品信息过程解析
Jun 01 #Python
matlab、python中矩阵的互相导入导出方式
Jun 01 #Python
如何理解Python中的变量
Jun 01 #Python
pycharm实现print输出保存到txt文件
Jun 01 #Python
Python如何爬取qq音乐歌词到本地
Jun 01 #Python
pycharm sciview的图片另存为操作
Jun 01 #Python
You might like
在php中取得image按钮传递的name值
2006/10/09 PHP
PHP5全版本绕过open_basedir读文件脚本漏洞详细介绍
2015/01/20 PHP
PHP实现无限分类的实现方法
2016/11/14 PHP
php实现微信原生支付(扫码支付)功能
2018/05/30 PHP
关于JS字符串函数String.replace()
2013/04/07 Javascript
JQuery对id中含有特殊字符的转义处理示例
2013/09/06 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
jQuery中dequeue()方法用法实例
2014/12/29 Javascript
JS组件中bootstrap multiselect两大组件较量
2016/01/26 Javascript
Node.js的MongoDB驱动Mongoose基本使用教程
2016/03/01 Javascript
Javascript中浏览器窗口的基本操作总结
2016/08/18 Javascript
js分页之前端代码实现和请求处理
2017/08/04 Javascript
ionic3+Angular4实现接口请求及本地json文件读取示例
2017/10/11 Javascript
vue实现前进刷新后退不刷新效果
2018/01/26 Javascript
详解angular分页插件tm.pagination二次触发问题解决方案
2018/07/20 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
浅谈Node新版本13.2.0正式支持ES Modules特性
2019/11/25 Javascript
nodejs开发一个最简单的web服务器实例讲解
2020/01/02 NodeJs
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
vue项目打包后提交到git上为什么没有dist这个文件的解决方法
2020/09/16 Javascript
python读写ini文件示例(python读写文件)
2014/03/25 Python
机器学习经典算法-logistic回归代码详解
2017/12/22 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
详解python statistics模块及函数用法
2019/10/27 Python
python:批量统计xml中各类目标的数量案例
2020/03/10 Python
Python函数__new__及__init__作用及区别解析
2020/08/31 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
英国Flybe航空官网:欧洲最大的独立支线廉价航空公司
2019/07/15 全球购物
星空联盟C# .net笔试题
2014/12/05 面试题
《大作家的小老师》教学反思
2014/04/16 职场文书
装饰工程师岗位职责
2014/06/08 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
党员剖析材料范文
2014/12/18 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
使用Redis实现秒杀功能的简单方法
2021/05/08 Redis