python_爬虫

Python爬虫在学习中整理的一些小技巧

2022-09-02  本文已影响0人  Tony_Pm

序言

如果你对工作不满意或对生活不满意,请不用抱怨,因为毫无用处,你只有努力提升技能,努力的完善自己,不断地向前奔跑,才会越来越好的!

使用代理IP

开发爬虫过程中经常会遇到IP被封掉的情况,这时就需要用到代理IP;
在urllib2包中有个ProxyHandler类,通过此类可以设置代理访问网页。

Cookies处理

cookies是某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密),python提供了cookielib模块用于处理cookies,cookielib模块的主要作用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源。

伪装成浏览器

某些网站反感爬虫的到访,于是对爬虫一律拒绝请求。所以用urllib2直接访问网站经常会出现HTTP Error 403: Forbidden的情况对有些 header 要特别留意,服务端会针对这些 header 做检查。

  1. User-Agent 有些服务端或 Proxy 会检查该值,用来判断是否是浏览器发起的 Request;
  2. Content-Type 在使用 REST 接口时,服务端会检查该值,用来确定 HTTP Body 中的内容该怎样解析。

页面解析

对于页面解析最强大的当然是正则表达式。其次就是解析库了,常用的有两个 lxml 和 BeautifulSoup,对于这两个库,我的评价是,都是HTML/XML的处理库。

  1. Beautifulsoup是纯python实现的,效率虽然低一些,但是功能实用,比如:它可以通过结果搜索获得某个HTML节点的源码这样的;
  2. lxml 底层是由C语言编码的,比较高效,支持Xpath。

验证码的处理

对于一些简单的验证码,可以进行简单的识别。本人也只进行过一些简单的验证码识别。但是有些反人类的验证码,比如12306,可以通过打码平台进行人工打码,当然这是要付费的。

gzip压缩

大家有没有遇到过某些网页,不论你怎么转码都是一团乱码。
如果你遇到了,说明你还不知道目前许多web服务具有发送压缩数据的能力,这可以将网络线路上传输的大量数据消减 60% 以上。尤其适用于 XML web 服务,因为 XML 数据的压缩率可以很高。但是一般服务器不会为你发送压缩数据,除非你告诉服务器你可以处理压缩数据。

如果本文对你学习有所帮助-可以点赞👍+ 关注 + 打赏!将持续更新更多新的文章。

上一篇下一篇

猜你喜欢

热点阅读