最新资讯发布日期:2021-03-08
Python用了一年多了。python应用程序最流行的场景是快速网络开发、web爬虫和自动运输:简单的网站、自动提交脚本、电子邮件发送和接收脚本以及简单的认证码识别脚本。
Web爬虫在开发过程中也有很多复用过程。这里总结一下,以后可以省事。
1.基本掌握网站页面。
2.使用代理知识产权。
在开发web爬虫的过程中,经常关闭IP时,必须使用代理IP。
urllib2包中有一个ProxyHandler类,也可以用来设置对网站页面的代理访问。代码片段如下。
3.Cookies加工。
Cookies是一些网站存储在用户本地终端的数据(通常是加密的),目的是识别用户的身份并跟踪会话。python提供了cookieslib模块来处理cookie。cookieslib模块的主要功能是提供可以存储cookie的对象,从而配合urrib2模块访问互联网资源。
代码段:
重要的是,CookieJar()用于管理HTTP。
cookie值,存储由HTTP请求生成的cookie的对象,并将cookie添加到已发布的HTTP请求中。Cookies作为一个整体存储在内存中。CookiesJar实例垃圾收集后会丢失cookie,所有进程都不需要单独操作。手动添加cookie。
4.冒充浏览器。
有些网站不喜欢网络爬虫的访问,拒绝他们的请求。使用urllib2直接访问网站时,经常会出现HTTPEror403。
被禁止的情况。
请特别注意一些由服务器端检查的标头。用户代理的服务器和代理检查该值以确定它是否是浏览器发起的请求。内容类型当使用REST接口时,服务器检查该值以确定HTTPBody的内容。此时,您还可以修改http包中的标头,以实现如下代码片段:
5.页面分析。
当然,最强的页面分析是正则表达式,对于不同网站的用户是不一样的,不需要太多解释。
对于这两个库,边肖的评价是HTML/XML处理库,用python中的美化程序实现,效率不高但功能实用。比如HTML节点源代码的lxmlC语言代码可以通过结果搜索得到,效率高,支持Xpath。
6.验证码的处理。
对于一些简单的验证码,也可以简单识别。我只做过简单的认证码识别。但是有些反人类的认证码,比如12306,也可以通过编码平台手工编码。当然是要收费的。
7.gzip压缩。
你有没有遇到过一些网站页面,无论怎么转换都是乱码?哈哈,这说明你不知道很多网络服务都有发送压缩数据的能力,这样也可以减少网络线路上传输的大量数据。超过60%。特别适合XML网络服务。因为XML数据的压缩率还是很高的。但是一般服务器只要不告诉服务器就不会发送压缩数据。因此,有必要这样修改代码。这是关键:创建一个Request对象,添加Accept-encoding头信息,告诉服务器gzip压缩数据可以接受。然后解冻压缩的数据:
8.多线程并发获取。
如果单个线程太慢,就需要更多的线程。在这里,简单的线程池模板只是打印1-10,但是可以看出它是并发的。
python的多线程虽然是鸡肋,但对于网络爬虫等频繁类型的网络,可以在一定程度上提高效率。大家不妨尝试下哦~
专属客服竭诚为您服务