请选择 进入手机版 | 继续访问电脑版
搜索
房产
装修
汽车
婚嫁
健康
理财
旅游
美食
跳蚤
二手房
租房
招聘
二手车
教育
茶座
我要买房
买东西
装修家居
交友
职场
生活
网购
亲子
情感
龙城车友
找美食
谈婚论嫁
美女
兴趣
八卦
宠物
手机

九州缥缈录下载 从事爬虫数十载!这八条爬虫总结送给在座的各位! www.macauslot.com

[复制链接]
查看: 839|回复: 0

502

主题

2000

帖子

2900

积分

金牌会员

Rank: 6Rank: 6

积分
2900
发表于 2019-5-16 14:42 | 显示全部楼层 |阅读模式
用python也差不多一年多了,python利用最多的场景还是web快速开辟、爬虫、自动化运维:写过简单网站、写过自动发帖剧本、写过收发邮件剧本、写过简单考证码识别剧本。
爬虫在开辟进程中也有很多复用的进程,这里总结一下,今后也能省些工作。
1、根基抓取网页
get方式

DXCPICKPRE_0</pre>post方式

DXCPICKPRE_1</pre>2、利用代理IP
在开辟爬虫进程中经常会碰到IP被封掉的情况,这时就需要用到代理IP;
在urllib2包中有ProxyHandler类,经过此类可以设备代理拜候网页,以下代码片断:

DXCPICKPRE_2</pre>3、Cookies处置
cookies是某些网站为了分辨用户身份、停止session跟踪而贮存在用户当地终端上的数据(凡是经过加密),python供给了cookielib?橛糜诖χ胏ookies,cookielib?榈氖滓谢枪└纱娲ookie的工具,以便于与urllib2?榕浜侠美窗莺騃nternet资本.
代码片断:

DXCPICKPRE_3</pre>关键在于CookieJar(),它用于治理HTTP cookie值、存储HTTP请求天生的cookie、向传出的HTTP请求增加cookie的工具。全部cookie都存储在内存中,对CookieJar实例停止渣滓接管后cookie也将丧失,一切进程都不需要零丁去操纵。
手动增加cookie

DXCPICKPRE_4</pre>4、伪装成阅读器
某些网站反感爬虫的到访,因而对爬虫一概拒绝请求。所以用urllib2间接拜候网站经常会出现HTTP Error 403: Forbidden的情况
对有些 header 要出格留意,Server 端会针对这些 header 做检查

  • User-Agent 有些 Server 或 Proxy 会检查该值,用来判定能否是阅读器倡议的 Request
  • Content-Type 在利用 REST 接口时,Server 会检查该值,用来肯定 HTTP Body 中的内容该怎样剖析。
这时可以经过点窜http包中的header来实现,代码片断以下:

DXCPICKPRE_5</pre>5、页面剖析
对于页面剖析最强大确固然是正则表达式,这个对于分歧网站分歧的利用者都纷歧样,就不用过量的说明,附两个比力好的网址:
正则表达式入门:http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html
正则表达式在线测试:http://tool.oschina.net/regex/
其次就是剖析库了,常用的有两个lxml和BeautifulSoup,对于这两个的利用先容两个比力好的网站:
lxml:http://my.oschina.net/jhao104/blog/639448
BeautifulSoup:http://cuiqingcai.com/1319.html
对于这两个库,我的评价是,都是HTML/XML的处置库,Beautifulsoup纯python实现,效力低,可是功用适用,比如能用经过成果搜索获得某个HTML节点的源码;lxmlC说话编码,高效,支持Xpath
私信小编001 获得源码!
6、考证码的处置
对于一些简单的考证码,可以停止简单的识别。本人也只停止过一些简单的考证码识别。可是有些反人类的考证码,比如12306,可以经过打码平台停止野生打码,固然这是要付费的。
7、gzip紧缩
有没有碰到过某些网页,非论怎样转码都是一团乱码。哈哈,那说明你还不晓得很多web办事具有发送紧缩数据的才能,这可以将收集线路上传输的大量数据消减 60% 以上。这特别适用于 XML web 办事,由于 XML 数据 的紧缩率可以很高。
可是一般办事器不会为你发送紧缩数据,除非你告诉办事器你可以处置紧缩数据。
因而需要这样点窜代码:

DXCPICKPRE_6</pre>这是关键:建立Request工具,增加一个 Accept-encoding 头信息告诉办事器你能接管 gzip 紧缩数据
然后就是解紧缩数据:

DXCPICKPRE_7</pre>8、多线程并发抓取
单线程太慢的话,就需要多线程了,这里给个简单的线程池模板 这个法式只是简单地打印了1-10,可是可以看出是并发的。
虽然说python的多线程很鸡肋,可是对于爬虫这类收集频仍型,还是能一定水平进步效力的。

DXCPICKPRE_8</pre>
感谢您的阅读
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则