欢迎来到天天培训网!全国[切换城市] 登录 注册
首页 发布课程 机构平台 手机浏览

手机扫一扫

咨询热线

400-0808-102

python网络爬虫知识

天天培训网络中心   2022-11-22 阅读:21
python网络爬虫知识

 


Python在爬虫方面的确是很好的,有Scrapy这样成熟的框架或者pyspider也好用,并且学习成本很低 ,实践效果都很好,下面是小编为您整理的关于python网络爬虫知识,希望对你有所帮助。



python网络爬虫知识配图



python网络爬虫知识



python有各种爬虫框架,方便高效的下载网页。另外爬虫是个典型的多任务处理场景,python的多线程、进程模型成熟稳定,提升整个系统下载和分析能力。



写爬虫很多语言都可以写,node.js也可以写,但是很多人是从python入手写爬虫的,习惯了之后偶尔想爬点东西用python很快就做好了。



Python在爬虫方面的确是很好的,有Scrapy这样成熟的框架或者pyspider也好用,并且学习成本很低 ,实践效果都很好,



比如说你要抓取一个网页内容只需要几行代码就可以实现。



为什么写爬虫都喜欢用python?



1.Python 有 scrapy 这样成熟的框架,我们大可不必自己从0开始



2.即使从0开始,以 Python 简洁的语法和一大波成熟的库,写起来相当的快。PHP 语法,你懂的。我试过写爬虫,体验还是不如 Python的



3.Python 数据处理个人认为比较方便,虽然 PHP 处理 DOM 也很挺方便的



Pthon 唯一不方便的大概是编码处理了。



python网络爬虫的应用



网络爬虫可以做的事情很多,如以下列出:



搜索引擎



采集数据(金融、商品、竞品等)



广告过滤



……



其实就我们个人兴趣,学完爬虫我们可以看看当当网上哪种技术图书卖得比较火(销量、评论等信息)、看某个在线教育网站哪门网络课程做得比较成功、看双十一天猫的活动情况等等,只要我们感兴趣的数据,一般的话都可以爬取得到,不过有些网站比较狡猾,设置各种各样的反扒机制。总而言之,网络爬虫可以帮助我们做很多有趣的事情。



网络爬虫中处理异常的种类与关系



URLError



通常,URLError在没有网络连接(没有路由到特定服务器),或者服务器不存在的情况下产生。



HTTPError首先我们要明白服务器上每一个HTTP 应答对象response都包含一个数字“状态码”,该状态码表示HTTP协议所返回的响应的状态,这就是HTTPError。比如当产生“404 Not Found”的时候,便表示“没有找到对应页面”,可能是输错了URL地址,也可能IP被该网站屏蔽了,这时便要使用代理IP进行爬取数据,关于代理IP的设定我们下面会讲到。



python网络爬虫知识配图



两者关系



两者是父类与子类的关系,即HTTPError是URLError的子类,HTTPError有异常状态码与异常原因,URLError没有异常状态码。所以,我们在处理的时候,不能使用URLError直接代替HTTPError。同时,Python中所有异常都是基类Exception的成员,所有异常都从此基类继承,而且都在exceptions模块中定义。如果要代替,必须要判断是否有状态码属性。



教你写网络爬虫:URL去重



有别于单机系统,在分布式系统中,这些URL应该存放在公共缓存中,才能让多个爬虫实例共享,我们继续使用Redis缓存这些数据。URL既可以存储在Redis的Set数据结构中,也可以将URL作为Key存储为Redis的String类型。至于这两种方案各有什么优缺点,就留给读者自己去思考了。



直接存储URL



将URL以字符串的形式直接存储到内存中。保守估计一下URL的平均长度是100字节,那么1亿个URL所占的内存是: 100000000 * 0.0001MB = 10000MB,约等于10G。这也不是不能用,占用的空间再大都能通过扩容来解决。



问题是,如果一个服务器存不下这么多URL该怎么办呢?其实也简单,明确每台服务器的分工,也就是说得到一个URL就知道要交给哪台服务器存储,每台服务器只存储一类URL,比较简单的实现方式就是对URL先哈希再取模。虽然能用,但还是有很大优化空间的。



存储消息摘要



MD5是一个消息摘要算法,它的用途很广泛,我们这里用它来压缩URL。



消息摘要算法的特点:



无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。



只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出。



消息摘要是单向、不可逆的。只能进行正向的信息摘要,而无法从摘要中恢复出任何的原始消息。



以上特点说明我们可以通过存储URL的MD5来实现去重功能,因为不同的URL,MD5不同,相同的URL,MD5相同嘛。



以前我们要存的URL是这样的:http://news.baidu.com/ns?ct=1&rn=20&ie=utf-8&bs=%E4%BA%AC%E4%B8%9C%E9%87%91%E8%9E%8D&rsv_bp=1&sr=0&cl=2&f=8&prevct=no&tn=news&word=%E4%BA%AC%E4%B8%9C%E9%87%91%E8%9E%8D&rsv_sug3=1&rsv_sug4=6&rsv_sug1=1&rsv_sug=1



对应的MD5值是这样的:d552b0b40e21d06d73a1a0938635eb1a



怎么样?省了不少空间吧?



有人说,拓海你不要骗我,这个算法的输入是个无穷集合,而输出是一个有限集合,必然会存在碰撞的,也就是存在不同的URL算出相同的MD5。这会导致去重时误判,少抓数据!



好吧,从理论上来说,必然会出现这种情况。可是出现这种情况的概率是多少呢?下面就算算两个不同URL产生相同消息摘要的概率。



以下是三种常见的消息摘要算法,分别是32、64、128字节,每个字节是十六进制数字的字符,它们的可能值数量分别是:



md5: 16^32 = 2^128 = 3.4 * 10^38



sha256: 16^64 = 2^256 = 1.2 × 10^77



sha512: 16^128 = 2^512 = 1.3 × 10^154

 

苏州达内教育优势

关于教学方式
目前市场上存在的教学方式分为三类:纯线下面授、线上网课、视频授课(有线下班)。有小伙伴让我推荐培训机构的时候,我是建议,你要去培训机构进行试听,自己选择。广州达内教育主要为学员带来线下教学的形式,近期为学员带来达内企业订单班,让学员可以选好岗位在就业,拿着offer学习本事,更有针对性的实现自己的技能学习目标!
定向教学指导
广州达内IT培训为满足学员明年的春招需求,力邀全国各大中型IT企业,提前把岗位要求公示出来,并与达内签订《一体化人才服务合作框架协议》。一手托两家,一边保质保量的为企业输送优质岗位所需人才,一边为广大学员提供更精准、更直接的求贤信息。能扛起这么重社会责任感的,也就只有这将近20年历史的老牌培训机构了。
多家校区实力强
广州达内在广州有3家校区,达内在全国有多家校区,持续着力于拓展更多合作企业、优质岗位,仅在2021年1~11月间,已成功与全国1643家企业签订用人协议,为学员累计提供了34,346个IT行业岗位。
搭建就业桥梁
疫情之后就业形势不好,广州达内教育挺身而出,勇于承担更多的社会责任,依托“企业订单班”这一实体,为广大求职者及求贤企业搭建起了信息互通的桥梁,助力每位渴求上劲、积极适应时代发展要求的学员实现自己的就业目标。

关于苏州达内IT教育

中国IT职业教育领军企业 达内时代科技集团有限公司(简称达内教育),美股交易代码:TEDU,成立于2002年。 2014年4月3日成功在美国上市,融资1亿3千万美元。成为中国赴美国上市的职业教育公司,也是引领行业的职业教育公司。 达内致力于面向IT互联网行业,培养软件开发工程师、测试工程师、系统管理员、智能硬件工程师、UI设计师、网络营销工程师、会计等职场人才。2015年起,推出面向青少年的少儿编程、智能机器人编程、编程数学等K12课程。 达内的使命:缔造年轻人的中国梦、缔造达内员工的中国梦 达内的愿景:做管理-的教育公司 开设课程 达内时代科技集团成人类课程方向:JAVA企业级应用软件工程师、Java互联网架构软件工程师、Java大数据工程师、Web前端开发工程师、网络运维与网络安全、Linux云计算工程师、Python 人工智能软件工程师、-嵌入式软件工程师、C++-软件工程师、PHP/web.3.0互联网工程师、-软件测试工程师、Android软件工程师、IOS软件工程师、.NET软件工程师、全链路UI设计师、商业插画、商业视觉设计课程、产品级UED交互设计师、全栈式CAD设计师、产品经理、VR开发工程师、VR次世代模型师、-网络营销师、新电商运营官、企业级影视视效、人力资源经理人课程、总账会计课程

苏州达内IT培训中心环境
以上内容是达内IT教育的小编为大家整理的“python网络爬虫知识”相关信息。如需了解IT相关课程信息、开课时间、课程内容、相关班型等,可拨打我们咨询电话或向在线客服获取课程资料,也可在线留言或预约试听课程,我们课程顾问将会尽快联系您。为您量身定制专属课程,开启您的学习之旅。
联系我们

江苏省

苏州市沧浪区东吴北路221号惠康新地5楼
南京市秦淮区中山东路532-2号 南工院金蝶大学科技园A2栋2楼
南京市雨花台区软件大道66号华通科技园一楼105室
南京市秦淮区中山东路532-2号 南工院金蝶大学科技园A5栋2楼
无锡市新区湘江路2-3金源国际大厦A座1506
北京|上海|广州|深圳|南京|成都|武汉|西安|青岛|天津|杭州|重庆|厦门|哈尔滨|济南|福州|沈阳|合肥|郑州|长春|苏州|大连|长沙|昆明|温州|太原|南昌|无锡|石家庄|南宁|中山|兰州|佛山|珠海|宁波|贵阳|保定|呼和浩特|东莞|洛阳|潍坊|烟台|运城

 

 

免责声明:
本站内容系网友自发上传与转载,不代表本网赞同其观点;
如涉及版权等问题请及时与我们联系,将在第一时间删除处理!qq:895240345 .