2022年 11月 4日

python代理ip_python代理ip7个汇总技巧

网络爬虫在研发环节中有很多复用的环节,这儿汇总7个好用的技巧

2db9b0467e1a6d36f708dcbccb7fa476.png

1、基础抓取网页:get方法、post方法

2、伪装成浏览器

一些网站反感网络爬虫的到访,因此对网络爬虫一律拒绝请求。因此用urllib2直接访问网站时常会出现HTTPError403:Forbidden的情况

对有些header要特别留意,Server端会针对这些header做检查

(1).User-Agent有些Server或Proxy会检查该值,用以判断是否发起的Request

(2).Content-Type在使用REST接口时,Server会检查该值,用以确定HTTPBody中的内容该如何解析。

这时候能够通过修改http包中的header来实现

(3)、Cookies处理

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

关键所在CookieJar(),它用以管理HTTPcookie值、存储HTTP请求生成的cookie、向传出的HTTP请求添加cookie的对象。整个cookie都存储在内存中,对CookieJar实例开展垃圾回收后cookie也将丢失,任何环节都不用单独去操作。

4、页面解析

针对页面解析最强大的自然是正则表达式,这个针对不一样网站不同的使用者都不一样。

次之便是解析库了,常用的有两个lxml和BeautifulSoup,这两个库,全是HTML/XML的处理库,Beautifulsoup纯python实现,效率低,可是功能实用,例如能用通过结果搜索获得某个HTML节点的源码;lxmlC语言编码,高效,支持Xpath

5、gzip压缩

有没有遇到过一些网页,无论怎样转码全是一团乱码。那说明你还不知道许多web服务具有发送压缩数据的能力,这能够将网络线路上传输的大量数据消减60%以上。这尤其适用于XMLweb服务,因为XML数据的压缩率能够很高。

可是一般服务器不会为你发送压缩数据,除非你告诉服务器你能处理压缩数据。

创建Request对象,添加一个Accept-encoding头信息告诉服务器你能接受gzip压缩数据然后便是解压缩数据

6、验证码的处理

针对一些简单的验证码,能够开展简单的识别。可是有些反人类的验证码,能够通过打码平台开展人工打码。

7、多线程并发抓取

单线程太慢的话,就需要多线程了,这儿给个简单的线程池模板这个程序只是简单地打印了1-10,可是能够看出是并发的。

虽然说python的多线程很鸡肋,可是针对网络爬虫这种网络频繁型,还是能一定程度提高效率的。