用python也差很少一年多了,python应用最多的场景仍是web快速开发、爬虫、自动化运维:写过简单网站、写过自动发帖脚本、写过收发邮件脚本、写过简单验证码识别脚本。python
爬虫在开发过程当中也有不少复用的过程,这里总结一下,之后也能省些事情。web
get方法正则表达式
post方法浏览器
开发爬虫过程当中常常会遇到IP被封掉的状况,这时就须要用到代理IP;服务器
在urllib2包中有ProxyHandler类,经过此类能够设置代理访问网页,以下代码片断:cookie
cookies是某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(一般通过加密),python提供了cookielib模块用于处理cookies,cookielib模块的主要做用是提供可存储cookie的对象,以便于与urllib2模块配合使用来访问Internet资源.网络
代码片断:session
在学习中有迷茫不知如何学习的朋友小编推荐一个学Python的学习q u n 227 -435- 450能够来了解一块儿进步一块儿学习!多线程
关键在于CookieJar(),它用于管理HTTP cookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中,对CookieJar实例进行垃圾回收后cookie也将丢失,全部过程都不须要单独去操做。并发
手动添加cookie
某些网站反感爬虫的到访,因而对爬虫一概拒绝请求。因此用urllib2直接访问网站常常会出现HTTP Error 403: Forbidden的状况
对有些 header 要特别留意,Server 端会针对这些 header 作检查
1.User-Agent 有些 Server 或 Proxy 会检查该值,用来判断是不是浏览器发起的 Request
2.Content-Type 在使用 REST 接口时,Server 会检查该值,用来肯定 HTTP Body 中的内容该怎样解析。
这时能够经过修改http包中的header来实现,代码片断以下:
对于页面解析最强大的固然是正则表达式,这个对于不一样网站不一样的使用者都不同,就不用过多的说明,
对于这两个库,个人评价是,都是HTML/XML的处理库,Beautifulsoup纯python实现,效率低,可是功能实用,好比能用经过结果搜索得到某个HTML节点的源码;lxmlC语言编码,高效,支持Xpath
对于一些简单的验证码,能够进行简单的识别。本人也只进行过一些简单的验证码识别。可是有些反人类的验证码,好比12306,能够经过打码平台进行人工打码,固然这是要付费的。
有没有遇到过某些网页,不论怎么转码都是一团乱码。哈哈,那说明你还不知道许多web服务具备发送压缩数据的能力,这能够将网络线路上传输的大量数据消减 60% 以上。这尤为适用于 XML web 服务,由于 XML 数据 的压缩率能够很高。
可是通常服务器不会为你发送压缩数据,除非你告诉服务器你能够处理压缩数据。
因而须要这样修改代码:
这是关键:建立Request对象,添加一个 Accept-encoding 头信息告诉服务器你能接受 gzip 压缩数据
而后就是解压缩数据:
单线程太慢的话,就须要多线程了,这里给个简单的线程池模板 这个程序只是简单地打印了1-10,可是能够看出是并发的。
虽说python的多线程很鸡肋,可是对于爬虫这种网络频繁型,仍是能必定程度提升效率的。
今天的分享就到这里啦,喜欢这篇文章的话,记得转发+评论哦!