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使用functools模块中的partial函数生成偏函数
Jul 02 Python
浅谈五大Python Web框架
Mar 20 Python
python编程羊车门问题代码示例
Oct 25 Python
Python实现破解12306图片验证码的方法分析
Dec 29 Python
python+pandas+时间、日期以及时间序列处理方法
Jul 10 Python
python安装twisted的问题解析
Aug 21 Python
python 动态迁移solr数据过程解析
Sep 04 Python
PYTHON EVAL的用法及注意事项解析
Sep 06 Python
Python单元测试模块doctest的具体使用
Feb 10 Python
Python基于pandas绘制散点图矩阵代码实例
Jun 04 Python
python3.5的包存放的具体路径
Aug 16 Python
python 中 .py文件 转 .pyd文件的操作
Mar 04 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编码规范的深入探讨
2013/06/06 PHP
PHP实现把MySQL数据库导出为.sql文件实例(仿PHPMyadmin导出功能)
2014/05/10 PHP
postfixadmin忘记密码后的修改密码方法详解
2016/07/20 PHP
php断点续传之文件分割合并详解
2016/12/13 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
Yii2.0实现生成二维码功能实例
2017/10/24 PHP
PHP开发中解决并发问题的几种实现方法分析
2017/11/13 PHP
360搜索引擎自动收录php改写方案
2018/04/28 PHP
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
jQuery文本框(input textare)事件绑定方法教程
2013/04/24 Javascript
JS 页面计时器示例代码
2013/10/28 Javascript
node.js中使用q.js实现api的promise化
2014/09/17 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
利用vue-router实现二级菜单内容转换
2016/11/30 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
JavaScript实现简单评论功能
2017/08/17 Javascript
prototype.js简单实现ajax功能示例
2017/10/18 Javascript
解决vue动态为数据添加新属性遇到的问题
2018/09/18 Javascript
Vue-cli3.X使用px2 rem遇到的问题及解决方法
2019/08/08 Javascript
javascript中可能用得到的全部的排序算法
2020/03/05 Javascript
vue-cli3 热更新配置操作
2020/09/18 Javascript
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
[36:22]VP vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中的自定义函数学习笔记
2014/09/23 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
2019/10/28 Python
解决pyCharm中 module 调用失败的问题
2020/02/12 Python
尤为Wconcept中国官网:韩国设计师品牌服饰
2019/01/10 全球购物
英国露营设备和户外服装购物网站:Simply Hike
2019/05/05 全球购物
随机分配座位,共50个学生,使学号相邻的同学座位不能相邻
2014/01/18 面试题
环保小标语
2014/06/13 职场文书
2015年十一国庆节演讲稿
2015/03/20 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
Win11怎么启动任务管理器?Win11启动任务管理器的几种方法
2021/11/23 数码科技