ImageVerifierCode 换一换
格式:PDF , 页数:59 ,大小:2.11MB ,
资源ID:231408      下载积分:15 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/231408.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(《Python语言》课件 第11章 项目实战:爬虫程序.pdf)为本站上传会员【曲****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

《Python语言》课件 第11章 项目实战:爬虫程序.pdf

1、Python语言大数据应用人才培养系列教材第十一章 项目实战:爬虫程序11.1爬虫概述11.2 爬虫3大库11.3 项目实战11.4 Scrapy框架11.1爬虫概述第十一章 项目实战:爬虫程序爬虫又称网络蜘蛛、网络蚂蚁、网络机器人等,它可以不受人工 干涉自动按照既定规则浏览互联网中的信息。我们把这些既定规则,称为爬虫算法。使用Python语言可以方便的实现这些算法,编写爬虫 程序,完成信息的自动获取。常见的网络爬虫主要有:百度公司的Baiduspider、360公司的 360Spiderx搜狗公司的Sogouspider、微软公司的Bingbot等。11.1爬虫概述第十一章 项目实战:爬虫程

2、序准备工作通常,我们在爬取一个站点之前,需要对该站点的规模和结构进 行大致的了解。站点自身的robots.txt和sitem叩文件都能够为我们了 解其构成提供有效的帮助。robots文件一般情况下,大部分站点都会定义自己的robots文件,以便引导 网络蜘蛛按照自己的意图爬取相关数据。sitemap文件站点提供的sitemap文件呈现了整个站点的组成结构。它能够帮 爬虫根据用户的需求定位需要的内容,而无须爬取每一个页面。估算站点规模目标站点的大小会影响我们爬取的效率。通常可以通过百度搜索 引擎的site关键字过滤域名结果,从而获取百度爬虫对目标站点的统 计信息。11.1爬虫概述第十一章 项目实

3、战:爬虫程序爬虫类型网络爬虫按照实现的技术和结构可以分为通用网络爬虫、聚焦网 络爬虫、增量式网络爬虫和深层网络爬虫。实际的网络爬虫系统通常 是由这几种爬虫组合而成。通用网络爬虫:别名全网爬虫。该类型的爬虫获取的目标资源在整个互联网中,其目标数据量庞大,爬行的范围广泛。比如:百度蜘蛛。聚焦网络爬虫:别名主题网络爬虫,是一种按照预先定义好的主题有选择的进行 网页爬取的网络爬虫。与通用网络爬虫相比,它的目标数据只和预定 义的主题相关,爬行的范围相对固定。主要用于特定信息的获取。11.1爬虫概述第十一章 项目实战:爬虫程序爬虫类型增量式网络爬虫:是指对已下载网页采取增量式更新和只爬行新产生的或者已经发

4、 生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能 新的页面。和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只 会在需要的时候爬行新产生或发生更新的页面。深层网络爬虫:是一种用于爬取互联网中深层页面的爬虫程序。和通用网络爬虫 相比,深层页面的爬取,需要想办法自动填写对应的表单,因而,深 层网络爬虫的核心在于表单的填写。11.1爬虫概述第十一章 项目实战:爬虫程序爬虫原理不同的爬虫程序,其实现原理也不尽相同。但这些实现原理有许多的相似之处,即我们通常所说的共性。基于此,本节用一个通 用的网络爬虫结构来说明爬虫的基本工作流程。已下载网页数据,大数据应用人才培养系列教材第十一章 项目实

5、战:爬虫程序11.1爬虫概述11.2 爬虫3大库11.3 项目实战11.4 Scrapy框架11.2爬虫3大库第十一章 项目实战:爬虫程序Requests 库众所周知,Python语言属于胶水语言,可扩展性强。用Python编写爬虫 程序的最大好处就是其本身有很多实用的第三方库。免去了我们自己实现相 应功能的环节。Python爬虫有三个比较实用的库:Requests.Beautiful Soup 和LXMI,为我们编写爬虫程序提供了必不可少的技术支持,下面我们逐一介 绍。用Requests实现HTTP请求非常简单,操作也相当人性化。因此,Python 中常用Requests来实现HTTP请求过

6、程,它也是在Python爬虫开发中最常用的 方式。第三方库的安装方法有两种:第一种方式:使用pip进行安装。命令为:pip install requests第二种方式:直接到官网卜即:/7/7/7P丫坨011.0115.0噌下载最新发行 版,然后解压缩文件夹,运行setup.py即可。这里我们采用第一种方法。11.2爬虫3大库第十一章 项目实战:爬虫程序Requests 库requests库的使用:requests库的主要方法有七种,现简单介绍如下:get()方法主要用于获取HTML网页,相当于HTTP的GET。其返回对 象response的常用属性详见下表,我们可通过这些属性获取要访问域名

7、的基本信息。属性说明r.statusodeHTTP请求的返回状态,200表示捱接成功,404表示失败。r.textPHIIP响应内谷的字符串形式,即url对应的页面内谷Qr.encodings从HTTP header中猜测的响应内谷编码方式r.apparent_encoding从内谷中分析出的响应内谷的编码方式r.contentHTTP响应内谷的_进制形式11.2爬虫3大库第十一章 项目实战:爬虫程序Requests 库head。方法主要用于获取HTML网页头信息,相当于HTTP的HEAD。import requests r=iequests、head(http:”),【header/Cach

8、e.Contror:private,no.cache,no.store;proxyrevalidate,no.transform.Connection:K eep.Alive),Content.Encoding:gzip,Content.Type:texthtml;Date*:Tue,19 Jun 2018 0 5:35:22 GMT,Last.Modified,:Mon?13 Jun 2016 02:50:40 GXfT,Pragma:o.cache;Se rver:bfe11.0.8.18p11.2爬虫3大库第十一章 项目实战:爬虫程序Requests 库post。方法主要用于向HTTP网

9、页提交POST请求,相当于HTTP的 POSTo这里,我们给指定的url地址http:/httpbin.org用post。方法添 加sendinfo信息。import request sendinfo=name*:lily,fsex:female)r=requesUpostXlittpj httpbin.org post,data=sendinfo)priQt(rtext)args*:;dataw,files,/form,nameM:,liKH,sexM:*,femaleMJwheaders,:nAccepr:w*/*wpAccept.Encoding1:rgzip;deflate,Conne

10、ction:close”/ContenLLength120”Coment.iype”:application x.www.form-urlencoded,Host:httpbiiL org,User Agent”Jpythoniequests 28.4Jjson”:mill,origiir:”11323.8(M76“Jurl”:*http:httpbin.org post”一11.2爬虫3大库第十一章 项目实战:爬虫程序Requests 库put()方法主要用于向HTML网页提交PUT请求,相当于HTTP的PUT。sendinfo=name:lily,sex:female r=requests

11、putfhttpj httpbin.org put】data=sendinfo)print(r.text)4J“args:Jdata:“J:fiks:fbrnr:“name“:“UlyJseM:”fem#Jheaders:“Accept”:“7*“JAccept.EncodingJgzip:deflate”Connection1close”ContenLLength:20”Content.iypc 憎:“application x.www.form.urlencoded”,”Host:httpbin.org:User Agent:pythoniequests 28.4,;,json,:nuU

12、/,origin,:w113,123.80476W,http:httpbin.orgput,)11.2爬虫3大库第十一章 项目实战:爬虫程序Requests 库patch。方法主要用于向HTML网页提交局部修改请求,相当于 HTTP的PATCH。比如,我们用patch。方法修改刚才put()方法添加的字 典 sendinfo。sendinfo=name:*berrvr;sex:female r=requests.p.atch(littp:/httpbin.org patch,data=sendinfo)-)priQKrtextX1“args”:Jdata:TfilesIfbnir:naiiie

13、benT,seW:female”Tieaders”:Accept”:”*,/,Accept.Encodmg:,gzip,deflate*,Connection*:nclose,nContent.Length11:w2l,f,TContent.T ype】”appHcationx.www.fornLurluncoded”Host:httpbin.org”UserAgent:pythoniequests 2 18.4”jsoiT:iiullJorigiir:”113.123(M76Turi:“http/httpbiiiQrgpatch”一11.2爬虫3大库第十一章 项目实战:爬虫程序Reques

14、ts 库delete。方法主要用于向HTML页面提交删除请求,相当于HTTP的DELETEO比如,我们删除刚才patch。函数修改后的sendinfo字典。示 例代码如下:气瓢激4配tefhttps力httpbin.org/delete prjni.textX”args:JdataT7files1ft)nirX;lieaders】A cceptT*,TA ccept.Encodmg:gzip,de flateXonnection,closeXontentleng,:,07,Host:,,httpbm.org7,UserA gent,7,p)thon.requ est5218.4,jsoif:m

15、iirorigW:F3.123.80.1761U”httPs:/httpbiii3g/ddete%11.2爬虫3大库第十一章 项目实战:爬虫程序Requests 库request。方法,主要用来构造一个请求,支撑以上各个基础方法。通常使用下面格式来完成该方法的调用格式如下:requests.request(method,url,*kwargs)其中,method 是指请求方式,对应 上面所讲的get、put、post等方法;url代表目标页面的ud链接地址。*kwargs代表控制访问参数,共4个。比如params参数,代表字典或字节 序列,可作为参数增加到山中。代码演示如下:sendinfo=

16、name:lily sex:female r=requests.requestfPUT.http:6httpbin.org put.data=sendinfo)一 print(r.textwargs,:/data:esM:/fonn:rnamew:wlflyhsexw:female,headers,:,Accept,:*/*V Accept.Encodmg,:gzip,deflate,/Connection:Hclosett,Conteiit.Length,:R20rt,Content.Iype:wa pplication x.xrw.form.urlencoded,Host:phttpbm.

17、org,V,User.AgentM:,?p51hon.requests 2.18.4”,“jsoiT:milVorigiir:”113.123.80.176”,Hurr:Tittp:/httpbin.。喀put”评11.2爬虫3大库第十一章 项目实战:爬虫程序定向爬虫代码框架import requestsdef getHTNILText(url)r=requests.gett url,timeout=30),r.raise_for_status()如果状态码不是200,引发 HTTPError 异常,rencodmg=r.apparent_encodmgreturn rtext except:

18、retunT产生异常,if_name_=?_main_T,:#限定gelHTXILTextO只在所定义的文件中执行url www.baiducomZprinKgetHn ILText(url)11.2爬虫3大库第十一章 项目实战:爬虫程序BeautifulSoupBeautifulSoup库是用Python语言编写的一个HTML/XML的解释器。它可 以很好的处理不规范的标记并生成剖析树(parse tree),其本身提供了简单 又常用的导航、搜索以及修改剖析树的操作,利用它可以大大简化编程时间。本节主要介绍如何使用该库处理不规范的标记,按照指定格式输出对应的文 档。Html文档二二标签树=B

19、eautifulSoup 对象 .You didnt write that awful page.Youre just trying to get some data out of it.Beautiful Soup is here to help.Since 2004,its been saving programmers hours or days of work on quick-turnaround screen scraping projects.nA tremendous boon-Python4H Podcasthttps:/ 项目实战:爬虫程序bs4安装pip install

20、beautifulsoup4SB NDOWSsystem32cmd.exelicrosot Windows 10.0.16299.431c)2017 M icrosoft Corporation。保留所有权利。:UsersAdministrator pip install Beautiulsoup4ollecting Beautiulsoup4D ownloading https:/iles.py thonho s t e d.or g/p ack age s/9 e/d4/l 0 46 e5 c ac 7 73 e22 70 723 7b c d5,bB e a0 a5 76B0 a84 7

21、 e c 7 at 15B d7 ac e/b e aut i ul s oup44.6.0-py3fone-any.whl(86kB)47%I|40kB 63kB/s eta 0:00:0 58%n.nstailing collected packages:Beautiulsoup4Successfully installed beautiulsoup4-4.6.011.2爬虫3大库第十一章 项目实战:爬虫程序bs4基本操作创建BeautifulSoup对象时,首先得导入其对应的bs4库,格式如下:from bs4 import BeautifulSouphtml=The Dormouses

22、 storvv Htlexc head一The Dormouses storyv bxi p+Once upon a time there were three little sisters;and their names were*-a href=,-http:/ elsie1 class=,sister id=linklxj Elsie 一Lacie andaTmiec a中and they lived at the bottom of a wellvp+1一-Vpawe J接下耒,我1门仓|建BeautifulSoup又寸象,6soup=Beauti ful Soup(html.11.2

23、爬虫3大库第十一章 项目实战:爬虫程序BeautifulSoup 库的对象通常,Beautiful Soup库用于将一个复杂HTML文档转换成一个复杂的树 形结构,每个节点都是一个Python对象,根据功能划分,将BeautifulSoup库 的对象可分为四类,具体包括:Tag:Tag相当于html种的一个标签。有两个重要的属性name和attrs。name:每个Tag对象的name就是标签本身的名称;attrs:每个Tag对象的attrs就 是一个字典,包含了标签的全部属性。#提用I Tag标卷a print(soup titletjtle?=-The Dormouses storyv/ti

24、tle aaa print(typ.esoup title print(soup.a.name-AAA-4-1 aaa pri nt(s o u p.a.attrs-print(soup.p.string-The Dormouses story/pnntCtypeCsoup.p.string)1 d11.2爬虫3大库第十一章 项目实战:爬虫程序BeautifulSoup 库的对象BeautifulSoupBeautifulSoup对象表示的是一个文档的全部内容。大部分时候,可 以把它当作Tag对象,是一个特殊的Tag,我们可以分别获取它的名 称、类型以及属性。接本节例子输出如下:pri.rit

25、soup nameh1MftQurn.gotF phnUtypelsoup name)中 print(soup.attrs-1(K1/11.2爬虫3大库第十一章 项目实战:爬虫程序BeautifulSoup 库的对象CommentComment对象是一个特殊类型的NavigableString对象,其实际输 出的内容仍然不包括注释符号,但是如果不好好处理它,可能会对我 们的文本处理造成意想不到的麻烦。从本节开始所定义的数据源html 字符串中,我们找一个带有注释的a标签,如下:pnnt(soup.aH print(type(soup.a.string)print(soup.find_all(

26、rar),Lacie,Tillie11.2爬虫3大库第十一章 项目实战:爬虫程序遍历文档另外,name参数也可是列表list、正则式或方法。具体示例分别如下:第一种,name参数为列表list,如本例中的 print(soup.find_all(rab1)hThe Dormouses storyT a class=sister hef二httpH id=1inkT、L,日e LacieT 11.2爬虫3大库第十一章 项目实战:爬虫程序遍历文档第二种,name参数为正则式,如本例中的八b,以b开头的标签 都能够找到。import re pn nt(s o u p f i n d_al I(re.

27、co mp i I e(,Ab,)-1The Dormouses story0nce upon a time there were three little sisters:and their names were1.Elsiehttp:/ andhttp:/ they lived at the bottom of a well.,The Dormouses story11.2爬虫3大库第十一章 项目实战:爬虫程序遍历文档第三种,传递函数。如果没有合适过滤器,那么还可以定义一个方法,方 法只接受一个元素参数,如果这个方法返回True表示当前元素匹配并且被找 到,如果不是则返回Falseo下面方

28、法校验了当前元素,如果包含class属性却 不包含id属性,那么将返回Trueo示例代码如下:def has_class_but_no_id(tag)?return tag.has_attrCclass)and not tag.has_attrCi(T-1 soup.find_all(has_class_but_no_i耻 The Dormouses story,Once upon a time there were three little sisters;and their names were*-1!,.ElsieLacie andTillie;and they lived at the

29、 bottom of a well,/11.2爬虫3大库第十一章 项目实战:爬虫程序遍历文档keyword 参数如果一个指定名字的参数不是搜索内置的参数名,搜索时会把该参数当作 指定名字tag的属性来搜索,如果包含一个名字为id的参数,Beautiful Soup会 搜索每个tag的 id”属性。示例如下:soup.find_all(id=,link2,)Lacie如果使用多个指定名字的参数可以同时过滤tag的多个属性,Soup对象 只保留同时具有指定限定符的标签。示例代码如下:soup.find_all(href=pile(nelsieM),id二linkV)11.2爬虫3大库第十一章 项目

30、实战:爬虫程序遍历文档text参数通过text参数可以搜搜文档中的字符串内容。与name参数的可 选值一样,text参数接受字符串、正则表达式、列表、True等参数。soup.fin d_al.l(text=Els i ey卜 soup.find_all(text=rTillieI Tlsie,Lacie,)4-1PLacie,Tillie1 soup.find_aJKtext=pile(Dormouse)The Dormouses story,The Dormouses story soup.fin d_aI l(text=Tru e)The Dormouses story,*n,Vi*,T

31、he Dormouses story,Once upon a time there were th ree little sisters;and their names weren Elsie ,n Lacie,andn Tillie,*;nand they lived atthe bottom of a well.*,An,5W二二二_11.2爬虫3大库第十一章 项目实战:爬虫程序遍历文档limit参数find_all()方法返回全部的搜索结构,如果文档树很大那么搜索会很 慢。当莪们不需要全部结果,可以使用limit参数限制返回结果的数量.效果与SQL中的limit关键字类似,当搜索到的结果

32、数量达到limit的限 制时,就停止搜索返回结果。soup.find_aJICa?limit=2L Elsie Lacie/11.2爬虫3大库第十一章 项目实战:爬虫程序遍历文档recursive 参数通常,调用tag的find_all()方法时,Beautiful Soup会检索当前tag的 所有子孙节点,如果只想施索tag的直接子节点,可以使用参数recursive二False。soup.html.findLalHttleThe Dormouses story soup.html.findqll(title“,ecursive二False)时 d_另外,find还有许多衍生的方法。这里就不

33、再一叙述,如有需要,可参阅beautifulsoup的帮助文档。11.2爬虫3大库第十一章 项目实战:爬虫程序Lxml 库Ixml是Python语言里和XML以及HTML工作的功能最丰富和最容易 使用的库。它是另一个Python爬虫的常用库,它是基于Iibxml2这一 XML解析库的Python封装,速度比BeautifulSoup快。Ixml 库安装:pip install Ixml11.2爬虫3大库第十一章 项目实战:爬虫程序Lxml基本操作text=The Dormouses storyThe Dormouses storyOnce upon a time there were thre

34、e little sisters;and their names were,Lacie andhttp:/ they lived at the bottom of a well.http:/ 项目实战:爬虫程序Lxml基本操作 from lxml import etree-*-1AAA text=1The Dormouses story-1Th e Dormouses storyOn ce upon a time there were three little sisters;and their names were-*-1 EJsle.x/ahttp:/exampI anc*-1a h re

35、f=http:Z/exa m p I e.co rrVti 11 ie class=siste id-linyBSATilliev/a;61and they lived at the bottom of a well.-.-1WWW.aaa html=etree.HTML(text-1 result=etree.tostringChtml-Aprj.nttresult-tThe DormouseVs storyn-The DormouseVs storynOn ce upon a time there were three little sisters;and their names were

36、n3n-Lacie-andnTillie;nand they lived at the bottom of a well.n.n prjnt(result.decodeCutf.8 1)1The Dormouses storyThe Dormouses storyOnce upon a time there were three little sisters:and their names were a href=Wp7/example.corrvelsie class=sister id=linkl xl.ElsieLacie andhttp:/example.corrv1acieTilli

37、evhttp:/ they lived at the bottom of a well.11.2爬虫3大库第十一章 项目实战:爬虫程序Lxml基本操作parse方法来读取html文件。首先定义一个名为text.html的html文件,内容如下:.iThe Dormouses storyiOn ce upon a time there were three little sisters;and their names wereiL Elsie,http:/exampI and J they lived at the bottom of a well.i然后,编写如下程序代码:vfrom lxml

38、 import etreehtml=etree.parseCtexthtml)result=etree.tostring(html,pretty_print=True)i print(result.decodeCutf.811.2爬虫3大库第十一章 项目实战:爬虫程序Lxml基本操作Lxml库中的标签搜索方法,在Lxml库中可用find。、findall()及 Xpath()三种方式来搜索Element包含的标签对象。其区别如下:find。返回第一个匹配对象,其参数使用的xpath语法只能用相 对路径(以开头);findall。:返回一个标签对象的列表,其参数使用的xpath语法只能 用相对路

39、径(以开头);xpath。:返回一个标签对象的列表,其参数使用的xpath语法既 可以是相对路径也可以是绝对路径。11.2爬虫3大库第十一章 项目实战:爬虫程序Lxml基本操作#find all()函数,J result=html findallCZ/a*)pnntCresultK1,#xpath绝对路径检索 resuJt=html.xpath(7/aA PrintCresult-,xpath相对路径检索 result=htmlxpathC-Z/aV pnntCresultK,大数据应用人才培养系列教材第十一章 项目实战:爬虫程序11.1 爬虫概述11.2 爬虫3大库11.3 项目实战11.4

40、 Scrapy框架11.3项目实战第十一章 项目实战:爬虫程序酷狗Top500排行榜数据爬取通过以上对爬虫基础知识及Python爬虫程序设计中所涉及的三大 库的学习。本节我们以获取酷狗TOP5。”排行榜数据为例,实战练 习基于Python的简单爬虫程序设计思路及实现过程。思路简析1.任务要求以酷狗网站TOP5。歌曲排行榜网页为定向爬取对象,通过爬 虫程序获取其页面中排名前5。的歌曲的rank、singer”、titles”times”字段值,并输出结果。2.环境要求确保已经正常安装Python安装包、Requests模块、BeautifulSoup 模块、Lxml模块。11.3项目实战第十一章

41、 项目实战:爬虫程序酷狗Top500排行榜数据爬取血口瞋 requests颂 bs4 import BeautifulSoup血口瞋time,Meis.=9,UserAgent:Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKiV537.36(KHTML,like Gecko)Chrome/56.0.2924.87 Safari/537.36P卜def get_info(url):+Jwb_data=限期您及。现M,headers:headersso.=BeautifulSoup(wb data.text.Ixmiyranks=soup.selectfspa

42、n.pc temp numtitles=soup.selectfdiv.pc temp songlist ul li a尸times=soup.selectfspan.pc temp tips r span*or.rank,title,time in zip(ranks,titles,times)#str1=title.get卿O.spIKdata=WrM:rank.get_text().strip(),4J,sioger:前加抉刎:str1-1/time:time.get textO.stripO-1喇data*_name_=_main_岫二卜W/ i in range(1,30 k1 意

43、url in Ms#getjnMuri)则以妫以2W11.3项目实战第十一章 项目实战:爬虫程序酷狗Top500排行榜数据爬取Run pc t xanl rani raniJ493,singer494,1 singer1495,singer落龙,5。谑:大哲s。运:林志炫J song:行者,time:3:023 闯码头,time:3:7 单身情歌time:4:37II耳 xanl496,singer夏天播放,song:小宝贝time:匕:12日 rani raniJ49;,singer1498,singer高进、小沈阳工、光良。若:song:我的好兄弟,、】联:4W 童话,time:4:04曾

44、 xanlJ499,singer凤凰传奇song:郎的诱惑疝ne:3:41X raniPiocess500.singeifinished kith ex麦小兜、单色凌,i.t code 0song:OK歌time:3:1511.3项目实战第十一章 项目实战:爬虫程序酷狗Top500排行榜数据爬取irnM requests1to bs4 import BeautifulSoup加电It time。!jeaders=9,UserAgenf:Mozilla/5.0(Windows NT 6.1;WOW64)AppleWebKiV537.36(KHTML,like Gecko)Chrome/56.0.

45、2924.87 Safari/537.36卜def get_info(url):+Jwb_data=requejts.flei(url,headers 二 headers=BeautifulSoup(wb data.text.Ixmiyranks=soup.selectfspan.pc temp nurrf*titles=soup.selectfdiv.pc temp songlist ul li atimes=soup.selectfspan.pc temp tips r span*Q.rank,title,time in zip(ranks,titles,times):str1=title

46、geLtgrfO.splitf.ydata=eTM:rank.getjext().strip()Bflgf:st川(VW:str1-1,lime,time.get text().stip(V喇(dataW_name_=_main_:p助:/ in ranged 30V就 url in urls:get加则time反感鼠2V大数据应用人才培养系列教材第十一章 项目实战:爬虫程序11.1 爬虫概述11.2 爬虫3大库11.3 项目实战11.4 Scrapy框架11.4 Scrapy框架第十一章 项目实战:爬虫程序爬虫框架Scrapy是一个非常优秀的框架,操作简单,拓展方便。是比较流行的爬虫解 决

47、方案。Scrapy是一个用Python写的爬虫框架,简单轻巧,使用方便。Scrapy 使用Twisted异步网络库来处理网络通讯,架构清晰,其包含的各种中间件可以 良好的完成各种需求。Scrapy 文档地址:https:/doc.scrapy.org/en/latest/引擎:负责控制在系统中所有组件间的传递,并在相应动作发生时触发对 应事件。调度器:它负责接受引擎发送过来的requests请求,并按照一定的方式进 行整理排列,入队、并等待Scrapy Engine(引擎)来请求时,交给弓|擎。下载器:负责下载Scrapy Engine(弓|擎)发送的所有Requests请求,并将其 获取到的

48、Responses交还给Scrapy Engine(引擎),由引擎交给Spiders来处理。Spiders:负责处理所有Responses,从中分析提取数据,获取Item字段需要 的数据,并将需要跟进的URL提交给引擎,再次进入Scheduler(调度器)。11.4 Scrapy框架第十一章 项目实战:爬虫程序爬虫框架11.4 Scrapy框架第十一章 项目实战:爬虫程序框架安装通过pip install Scrapy方式女装。C:MJsersXAdministratorpip install scrapyCollecting scrapyUs ing cached https:/files.

49、pythonhosted.org/packages/db/9c/cblSb2dc6063a80SaFd 21b9b396e0e965800765b51da72el7cf340b9be2/Sci*apy1.5.0py2.py3none-any.whl Re quire nient already satisfied:seru ice-ident ity in d:python libs ite-packages Requirement already satisfied:PyDispatchei*=2.0.5 in d:python libs ite-packages =l.17.0 in d:

50、pythonlibs ite-packages error:Microsoft Uisual C+14.0 is required.Get it with MMicrosoft Uisual C+Build Tools*:http:Z/landinghub.uisualstudio.con/uisual-cpp-build-tooIs11.4 Scrapy框架第十一章 项目实战:爬虫程序框架安装FScvisualcppbuildtools_full.exe 运行安装visual C+Build Tools然 后,在docs对话框中输入pip install Scrapy回车。Installin

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服