「这是我参与11月更文挑战的第17天,活动详情查看:2021最后一次更文挑战」
现代职场达人,应该做到 有情、有趣、有用、有品。好了,去掉 “有” 字你就成了。那如何成为职场幽默达人呢,咱需要一定的素材也就是段子,多看段子才能多说段子,并且还能说高级段子。
爬取前的分析工作
本次爬取的目标网站为:www.wllxy.net/gxqmlist.as…
爬取的难度整体不大,分析工作基本可以省略,毕竟对于已经学习到这里的你来说,requests
已经掌握了 7~8 成火候了。
本文重点在给你介绍一下 requests
中的代理相关内容。
爬虫基础知识普及时间
啥是代理
代理就是代理网络用户去取得网络信息。大白话就是把用户本身的 IP 和其他网络相关信息想办法隐藏起来,让目标站点获取不到。
代理的种类
高匿名代理
高匿名代理会将数据包原封不动的转发,从目标网站的服务器来看,就像是一个真实的普通用户在访问,而且使用的 IP 也是代理服务器的 IP 地址,可以完美的隐藏用户原 IP,所以高匿名代理是爬虫程序代理首选。
普通匿名代理
普通匿名代理会在数据包上做一些改动,加入 HTTP 头固定参数。正式因为固定参数的存在导致目标服务器可以追踪的用户的真实 IP,反爬度高的网站很容易判断用户是否是爬虫程序。
透明代理
这个就不用细说了,代了白代,目标服务器很容易检测出来。
在代理的种类上,有时还会按照 HTTP 和 HTTPS 区分,现在的情况下大多数网站已经升级到 HTTPS 协议了,但 HTTP 并没有被舍弃掉,一般还可以进行爬取。这里需要注意下 HTTPS 需要多次握手,速度比较慢,使用代理之后就会变的更慢,所以以后能爬 HTTP 协议的网站就尽量爬取 HTTP 协议,包括使用代理也是。
requests 使用代理
requests 支持多种代理方式,设置办法也非常简单,通过为任意请求方法提供 proxies 参数来配置单个请求,例如下述代码(关于代理本部分为大家做一下介绍即可,因为本案例实操中发现不需要代理也可以轻松完成目标数据获取)
1 | python复制代码import requests |
注意代理为一个字典参数,可以包含 HTTP 或者 HTTPS 中的任意一项。
还要注意 requests 是支持 SOCKS 代理的,知识点难度的问题,不做展开讲解。
代码编写时间
代理相关的知识已经介绍完毕,下面就进入实际编码环节。
1 | python复制代码import requests |
注意,zip
函数用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。zip 返回的是一个对象。如需展示列表,需手动 list() 转换。
如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同。
其余内容涉及数据保存部分,即上述代码中的 save
函数,可以自行编写。
最后在啰嗦两句
本系列爬虫小课主要介绍的是 requests
库,学习完毕,你就能对 requests
库有一个比较完善的认知。
本文转载自: 掘金