首发于 猪哥的Python
Python爬虫的起点

Python爬虫的起点

第一章主要讲解爬虫相关的知识如:http、网页、爬虫法律等,让大家对爬虫有了一个比较完善的了解和一些题外的知识点。


今天这篇文章将是我们第二章的第一篇,我们从今天开始就正式进入实战阶段,后面将会有更多的实际案例。

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

一、Python有哪些网络库

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

Python网络请求库有点多,而且还看见网上还都有用过的,那他们之间有何关系?又该如何选择?



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

二、requests介绍

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

1.首页

requests的官方文档(目前已支持中文)链接: cn.python-requests.org 源代码地址: github.com/kennethreitz


从首页中让HTTP服务人类这几个字中我们便能看出,requests核心宗旨便是让用户使用方便,间接表达了他们设计优雅的理念。

注:PEP 20便是鼎鼎大名的Python之婵

警告:非专业使用其他 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 install requests

如果是pip3则使用

pip3 install requests

如果你使用anaconda则可以

conda install requests

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


四、爬虫流程

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



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

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

五、爬取某东商品页

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

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


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

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

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

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

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


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

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


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

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

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

检查返回结果

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

六、requests库介绍

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

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

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

对于HTTP的几种请求方法,没做过RestFul API的同学并不是很清楚每个请求方式表达的含义,这里给大家列一下:

想了解requests更多使用方法请参考: cn.python-requests.org

后面猪哥也会用大量案例来一点一点学习requests库的一些使用技巧。

七、总结

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

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

如果你有 有趣的爬虫案例或者想法,务必在下方留言,让我看看你们的骚操作。

玻璃钢生产厂家湖南玻璃钢摆件制造吉林不锈钢花盆公司湖北玻璃钢花盆定做洛阳不锈钢雕塑制作益阳玻璃钢休闲椅多少钱宿州玻璃钢种植池价格包头玻璃钢花钵制作营口玻璃钢装饰定制许昌玻璃钢花槽厂滁州玻璃钢家具加工兰州玻璃钢前台生产厂家安康玻璃钢花槽制造长沙玻璃钢坐凳多少钱铜川玻璃钢花箱淮安玻璃钢外壳价格河源玻璃钢景观雕塑多少钱萍乡玻璃钢动物雕塑公司哈尔滨玻璃钢装饰造型批发呼和浩特玻璃钢医疗外壳加工阜阳玻璃钢人物雕塑批发唐山玻璃钢茶几批发眉山玻璃钢花瓶加工随州玻璃钢制品价格贵阳玻璃钢餐桌椅厂家邵阳玻璃钢种植池哪家好贵州玻璃钢家具厂家直销江门玻璃钢造型制作丹东玻璃钢种植池哪家好嘉兴商场美陈厂家直销玻璃钢垃圾桶批发香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化