今天跟大家出的这篇文章,是从爬虫的起点开始讲起,这里的Python学习教程,一篇文章带你贯穿爬虫始末!之前也够跟大家出过相关的Python相关的Python学习教程,伙伴们也可以翻阅一下以前的!

爬虫系列文章的第一篇,这里便为大家讲解了HTTP原理,很多人好奇:好好的讲爬虫和HTTP有什么关系?其实我们常说的爬虫(也叫网络爬虫)就是使用一些网络协议发起的网络请求,而目前使用最多的网络协议便是HTTP/S网络协议簇。

一、Python有哪些网络库

在真实浏览网页我们是通过鼠标点击网页然后由浏览器帮我们发起网络请求,那在Python中我们又如何发起网络请求的呢?答案当然是库,具体哪些库?猪哥给大家列一下:

  • Python2: httplib、httplib2、urllib、urllib2、urllib3、requests
  • Python3: httplib2、urllib、urllib3、requests
    Python网络请求库有点多,而且还看见网上还都有用过的,那他们之间有何关系?又该如何选择?

httplib/2:

这是一个Python内置http库,但是它是偏于底层的库,一般不直接用。

而httplib2是一个基于httplib的第三方库,比httplib实现更完整,支持缓存、压缩等功能。

一般这两个库都用不到,如果需要自己 封装网络请求可能会需要用到。

urlliib是一个基于httplib的上层库,而urllib2和urllib3都是第三方库,urllib2相对于urllib增加一些高级功能,如:HTTP身份验证或Cookie等,在Python3中将urllib2合并到了urllib中。urllib3提供线程安全连接池和文件post等支持,与urllib及urllib2的关系不大。

requests:
requests库是一个基于urllib/3的第三方网络库,它的特点是功能强大,API优雅。由上图我们可以看到,对于http客户端python官方文档也推荐我们使用requests库,实际工作中requests库也是使用的比较多的库。

综上所述,我们选择选择requests库作为我们爬虫入门的起点。另外以上的这些库都是同步网络库,如果需要高并发请求的话可以使用异步网络库:aiohttp,这个后面猪哥也会为大家讲解

**

二、requests介绍

**
希望大家永远记住:学任何一门语言,都不要忘记去看看官方文档。也许官方文档不是最好的入门教程,但绝对是最新、最全的教学文档!

1.首页

requests核心宗旨便是让用户使用方便,间接表达了他们设计优雅的理念。

【注意】:非专业使用其他 HTTP 库会导致危险的副作用,包括:安全缺陷症、冗余代码症、重新发明轮子症、啃文档症、抑郁、头疼、甚至死亡。

2.功能特性

都说requests功能强大,那我们来看看requests到底有哪些功能特性吧:

  • Keep-Alive & 连接池

  • 国际化域名和 URL

  • 带持久 Cookie 的会话

  • 浏览器式的 SSL 认证

  • 自动内容解码

  • 基本/摘要式的身份认证

  • 优雅的 key/value Cookie

  • 自动解压

  • Unicode 响应体

  • HTTP(S) 代理支持

  • 文件分块上传

  • 流下载

  • 连接超时

  • 分块请求

  • 支持 .netrc
    requests 完全满足今日 web 的需求。Requests 支持 Python 2.6—2.7以及3.3—3.7,而且能在 PyPy 下完美运行。

三、安装requests*

pip 安装:

pip install requests

如果是pip3则使用

pip3 install requests

如果你使用anaconda则可以

conda install requests

如果你不想用命令行,可在pycharm中这样下载库

四、爬虫流程

下图是之前工作总结的一个项目开发流程,算是比较详细,在开发一个大型的项目真的需要这么详细,不然项目上线出故障或者修改需求都无法做项目复盘,到时候程序员就有可能背锅祭天。。。

言归正传,给大家看项目的开发流程是想引出爬虫爬取数据的流程:

确定需要爬取的网页
浏览器检查数据来源(静态网页or动态加载)
寻找加载数据url的参数规律(如分页)
代码模拟请求爬取数据

五、爬取某东商品页

以某东商品页为例子带大家学习爬虫的简单流程,为什么以某东下手而不是某宝?因为某东浏览商品页不需要登录,简单便于大家快速入门!

1.第一步:浏览器中找到你想爬取的商品




ps:并不是在开车哦,为什么选这款商品?因为后面会爬取这款商品的评价做数据分析,是不是很刺激!

2.第二步:浏览器检查数据来源

打开浏览器调试窗口是为了查看网络请求,看看数据是怎么加载的?是直接返回静态页面呢,还是js动态加载呢?

鼠标右键然后点检查或者直接F12即可打开调试窗口,这里猪哥推荐大家使用Chrome浏览器,为什么?因为好用,程序员都在用!具体的Chrome如何调试,大家自行网上看教程!

打开调试窗口之后,我们就可以重新请求数据,然后查看返回的数据,确定数据来源。

3.第三步:寻找加载数据url的参数规律

我们可以看到第一个请求链接:https://item.jd.com/1263013576.html 返回的数据便是我们要的网页数据。因为我们是爬取商品页,所以不存在分页之说。

当然价格和一些优惠券等核心信息是通过另外的请求加载,这里我们暂时不讨论,先完成我们的第一个小例子!

4.第四步:代码模拟请求爬取数据

获取url链接之后我们来开始写代码吧


import requestsdef spider_jd():"""爬取京东商品页"""url = 'https://item.jd.com/1263013576.html'try:r = requests.get(url) # 有时候请求错误也会有返回数据# raise_for_status会判断返回状态码,如果4XX或5XX则会抛出异常r.raise_for_status()print(r.text[:500]) except:print('爬取失败')if __name__ == '__main__':spider_jd()如果你喜欢编程,迷茫在编程的世界里,
不知道自己的未来规划,
对python感兴趣,
这里推荐一下我的学习交流圈QQ群832 139 748,
里面都是学习python的,
群里有本文章的源码

检查返回结果

至此我们就完成了某东商品页的爬取,虽然案例简单,代码很少,但是爬虫的流程基本差不多,希望想学爬虫的同学自己动动手实践一把,选择自己喜欢的商品抓取一下,只有自己动手才能真的学到知识!

六、requests库介绍

上面我们使用了requests的get方法,我们可以查看源码发现还有其他几个方法:post、put、patch、delete、options、head,他们就是对应HTTP的请求方法。


这里简单给大家列一下,后面会用大量的案例来用而后学,毕竟枯燥的讲解没人愿意看。

requests.post(‘http://httpbin.org/post’, data = {‘key’:‘value’})

requests.patch(‘http://httpbin.org/post’, data = {‘key’:‘value’})

requests.put(‘http://httpbin.org/put’, data = {‘key’:‘value’})

requests.delete(‘http://httpbin.org/delete’)

requests.head(‘http://httpbin.org/get’)

requests.options(‘http://httpbin.org/get’)

注:httpbin.org是一个测试http请求的网站,能正常回应请求

七、总结

今天为大家简单介绍了一下这个非常重要的库:requests,requests可以胜任很多简单的爬虫需求,它强大的功能以及优美的api得到一致的认同。

有人多同学会问:Python爬虫到什么境界才算是入门?你会熟练使用requests库去实现一些简单的爬虫功能就算入门,并不是说需要会各种框架才算是入门,相反能使用低级工具实现功能的才更具潜力!

如果你有 有趣的爬虫案例或者想法,可以留言哈,根大家分享一下你的骚操作~

更多的Python学习教程也会继续为大家更新!

这里是Python爬虫的起点,抢占资源啦(Python学习教程)相关推荐

  1. python爬虫工程师需要会什么软件_Python学习教程:爬虫工程师必备的10个爬虫工具!...

    Python学习教程:爬虫工程师必备的10个爬虫工具! 最近很多学爬虫的伙伴让推荐顺手的爬虫工具,南瓜花了点时间总结了一下,把这些好用的爬虫工具都跟你们找齐活了! 都知道工欲善其事必先利其器,那么作为 ...

  2. pythonurllib爬虫教学_Python学习教程:这里是Python爬虫的起点,抢占资源啦

    原标题:Python学习教程:这里是Python爬虫的起点,抢占资源啦 今天跟大家出的这篇文章,是从爬虫的起点开始讲起,这里的Python学习教程,一篇文章带你贯穿爬虫始末!之前也够跟大家出过相关的P ...

  3. python爬虫获取起点中文网人气排行Top100(快速入门,新手必备!)

    本篇博客小菌为大家带来的是用python爬虫获取起点中文网人气排行Top100的分享,希望大家能在学习的过程中感受爬虫的魅力!         我们先根据网址https://www.qidian.co ...

  4. 基于python爬虫技术的应用_基于Python爬虫技术的应用

    办公自动化杂志 一.引言 本文主要是对 Python 爬虫技术进行阐述,基于 python 的爬虫与其他语言相比的有很多优势.通过爬去某个网站的所有新闻这个案例,来进一步阐释 Python 爬虫技术的 ...

  5. python爬虫-python爬虫是什么?为什么把python叫做爬虫?

    今天我们来讲解python的基本概念性的知识.很多刚接触python的朋友有很多疑问,python爬虫是什么?那又为什么把python叫做爬虫? python爬虫是什么? 在进入文章之前,我们首先需要 ...

  6. python爬虫项目实战教学视频_('[Python爬虫]---Python爬虫进阶项目实战视频',)

    爬虫]---Python 爬虫进阶项目实战 1- Python3+Pip环境配置 2- MongoDB环境配置 3- Redis环境配置 4- 4-MySQL的安装 5- 5-Python多版本共存配 ...

  7. python爬虫是干嘛的?python爬虫能做什么?

    python爬虫可以用于收集数据,爬虫是一个爬虫程序,一个程序的运行速度是非常快的,而且不会因为重复的事情感到疲倦,接下来我们一起学习python爬虫是干嘛用的,python爬虫究竟能做什么呢?pyt ...

  8. python爬虫简单实例-最简单的Python爬虫案例,看得懂说明你已入门,附赠教程

    原标题:最简单的Python爬虫案例,看得懂说明你已入门,附赠教程 这是最简单的Python爬虫案例,如果你能看懂,那么请你保持信心,因为你已经入门Python爬虫,只要带着信心和努力,你的技术能力在 ...

  9. python爬虫个人如何挣钱-个人利用Python爬虫技术怎么挣钱

    在下写了10年Python,期间写了各种奇葩爬虫,挣各种奇葩的钱,写这篇文章总结下几种爬虫挣钱的方式. 1.最典型的就是找爬虫外包活儿. 这是网络爬虫最通常的的挣钱方式,通过外包网站,熟人关系接一个个 ...

最新文章

  1. py2exe打包python_和python爱好者谈谈如何在新版python中使用py2exe打包可执行程序
  2. python学生信息管理系统心得体会-python实现名片管理系统
  3. 自学python当黑客-用Python做黑客,暴力破解wifi密码
  4. getopt和getopt_long的使用
  5. (转载)hive文件存储格式
  6. C++实现最小二乘法对y=exp(x)的二次拟合
  7. android SharedPreferences数据存储
  8. numpy库中的extend()函数使用
  9. 四格漫画《MUXing》——度姐传说
  10. 在openstack环境中安装rackspace private cloud --1 环境准备
  11. 【C++深度剖析教程1】C++中的经典问题解析-c++中的对象的构造顺序与析构顺序
  12. 顺序图组合片段类型及属性
  13. python django 动态网页_python27+django1.9创建app的视图及实现动态页面
  14. 《软件构架实践》(六) —— 构架编档
  15. 内存池算法 linux,内存池自动释放 - 梦想游戏 - OSCHINA - 中文开源技术交流社区...
  16. Thymeleaf无法显示css样式
  17. VC++数据库应用开发
  18. Java 从word中提取文字信息(开发笔记)
  19. COGS 336 Vijos 1018 NOI2003 智破连环阵
  20. [oeasy]python0125_汉字打印机_点阵式打字机_汉字字形码

热门文章

  1. Java程序员的互联网转型之路
  2. 图学习中的链路预测任务(持续更新ing...)
  3. Eclipse/MyEclipse转IntelliJ IDEA完全攻略
  4. 【中间件技术】第二部分 CORBA规范与中间件(4) 编写对象接口
  5. 前端学习—HTML5
  6. 核心微生物分析_基因测序找出肠道核心微生物群
  7. 北京市中小学信息学竞赛汇总
  8. jquery轻量级数字动画插件 —— countUp.js
  9. Salome_Meca 2021 安装教程(Centos)
  10. 【human nature】:马云的故事