Python爬虫,月薪25K的爬虫工程师对近期爬虫学习的总结!超全!

今天咱们就来花几分钟了解一下Python爬虫好玩的地方吧!差点忘了。在给大家分享之前呢,小编推荐一下一个挺不错的交流宝地,里面都是一群热爱并在学习Python的小伙伴们,大几千了吧,各种各样的人群都有,特别喜欢看到这种大家一起交流解决难题的氛围,群资料也上传了好多,各种大牛解决小白的问题,这个Python群:330637182 欢迎大家进来一起交流讨论,一起进步,尽早掌握这门Python语言。

任何指定的程序都有能力同时做为客户端和服务器。我们在使用这个概念时,不是看程序功能上是否能实现客户及服务器,而是看程序在特定连接时段上扮演何种角色(客户或服务器)。同样,任何服务器可以扮演原始服务器、代理、网关、隧道等角色,行为的切换取决于每次请求的内容。

简单流程

HTTP协议是基于请求/回应机制的。客户端与服务器端建立连接后,以请求方法、URI、协议版本等方式向服务器端发出请求,该请求可跟随包含请求修饰符、客户信息、及可能的请求体(body)内容的MIME类型消息。服务器端通过状态队列(status line)来回应,内容包括消息的协议版本、成功或错误代码,也跟随着包含服务器信息、实体元信息及实体内容的MIME类型消息。

HTTP 消息(HTTP Message)

HTTP消息由客户端到服务器的请求和由服务器到客户端的回应组成。

代码实现的流程

爬虫是一个综合性的工具

在实现爬虫的过程中,为了实现我们的目的,我们借助了各种各样的工具。浏览器的开发者工具,正则表达式,以及python的各种功能库。可谓是无所不用其极。但是,对于这些工具,我们实际上用到的功能,目前来看,其实并不多,核心代码就是那点而已,所以说,抽离出汇总起来,日后重新使用,一旦对于这个工具不再熟悉,回过头来看这些小小的片段,总是会省下很多的时间。

所以,这篇文章的核心内容就要来了。

伪装浏览器

添加头信息。可以在浏览器的开发者工具中的网路选项卡中点击对应的html页面查看请求报文和相应报文信息。一般的,只需添加用户代理信息即可。

时间问题

超时重连

有时候网页请求太过频繁,会出现长时间没有响应的状态,这时候一般需要设置超时重连。下面是一个例子片段

页面解析

文件读写

Cookies 是某些网站为了辨别用户身份、进行 session 跟踪而储存在用户本地终端上的数据(通常经过加密)。

代理

有一种反爬虫策略就是对IP进行封锁。所以我们有时需要设置代理。

原理:代理服务器原理如下图,利用代理服务器可以很好处理IP限制问题。

一般都是利用互联网上提供的一些免费代理IP进行爬取,而这些免费IP的质量残次不齐,出错是在所难免的,所以在使用之前我们要对其进行有效性测试。

后续

后面我会在考虑学习多线程异或多进程改写之前的爬虫,研究研究前面引用的文章里的提到的一些我之前还未了解的技术,感觉要学的东西还是很多,快要开学了,自己的效率有点低,也不知道还能有多少时间给自己这样浪。

谢谢阅读,本文转载!原文链接

猜你喜欢

转载自blog.csdn.net/liujiayu2/article/details/79408473