使用Python快速启动爬虫的7个技巧
使用Python快速启动爬虫的7个技巧
1.基本网页抓取
get方法
post方法
2.使用代理IP
爬虫开发过程中IP被封。
必须使用代理IP。
urllib2包中有一个ProxyHandler类,通过它可以设置代理访问。
如图在以下代码片段中:网页:
3.Cookie处理
Cookie是一些网站顺序存储在用户本地终端上的数据(通常是加密的)。 为了识别用户并执行会话跟踪,Python提供了cookielib模块来处理cookie。 cookielib模块的主要功能是提供一个可以存储cookie的对象,供urllib2模块使用。
用于访问Internet资源。
代码片段:
关键是CookieJar(),它管理HTTPcookie值,
存储HTTP请求生成的cookie,用于响应。 将cookie
对象添加到传出的HTTP请求中。 整个cookie存储在内存中。 CookieJar实例被垃圾收集后,cookie就会丢失。 无需单独运行每个进程。
手动添加cookie。
4.伪装成浏览器
有些网站讨厌被爬虫访问,拒绝爬虫请求。 因此,直接使用urllib2访问网站时,经常会出现HTTPError403:Forbidden。
特别注意一些标头:
:
1.用户代理检查此值。 ,用于判断请求是否是浏览器发起的。
2.使用Content-TypeREST接口时,服务器会检查
值to确定应如何解析HTTPBody的内容。
如果修改http包的头部,代码片段将如下所示:
5.对于简单的验证码,可以进行简单的识别。 虽然只是进行了一些简单的认证码识别,但是一些半人性化的认证码,比如12306
,可以通过编码平台手动编码,当然这是要收费的。
6.Gzip压缩
您是否见过无论如何转码网页都会变形的情况?哈哈,这意味着很多Web服务都具备了传输压缩数据的能力,这样可以减少网络线路上传输的数据量60%以上。 对于XMLWeb服务尤其如此。 这是因为XML数据的压缩率可以非常高。
但是,服务器通常不会发送压缩数据,除非您告诉服务器它可以处理压缩数据。
所以:您需要修复代码.
这是关键。 通过创建请求对象并添加Accept-
编码标头,可以接受gzip压缩数据的服务器。
然后解压缩数据。
7.多线程并发抓取
如果单线程太慢,就需要多线程。 简单的一个线程池模板
该程序仅打印1-10,但您可以看到它们同时运行。
Python的多线程没什么用,但是对于经常使用网络的爬虫来说,可以在一定程度上提高效率。
上一篇:零基础学python从入门到精通
下一篇:零基础学python全彩版pdf