欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

    《数据采集技术(初级)》实验手册项目6:项目实战网络爬虫.docx

    • 资源ID:1216701       资源大小:275.63KB        全文页数:16页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《数据采集技术(初级)》实验手册项目6:项目实战网络爬虫.docx

    任务1爬取手机端数据任务描述使用ReqUeStS库与抓包工具(拦截查看网络数据包内容的软件)的结合实现一个APP页面内容的爬取。能够通过FiddIer抓包工具配置及使用获取APP数据内容及相关信息,之后使用Requests库相关方法通过链接地址实现APP内数据的爬取。爬取思路如下:(1)安装FiddIer抓包工具。(2)使用FiddIer抓包工具进行网站分析。(3)分析网站。任务步骤第一步下载抓包工具。这里使用FiddIer抓包工具,点击下载按钮后,根据相关提示信息完成内容填写即可实现FiddIer下载,效果如下图所示。俞FMWr*F<<WebCu99rX£httWw.telef.comA ProgressCOMPAW TKHNoIoGY Telenke FiddIevwvw docs & support PmCMG Q v9 X QSUl Libraries for Web,MObiIe & DesktopTelerikFiddlerThefreewebdebuggingproxyforanybrowser,systemorplatformKeyFeatures第二步FicIdIer安装。双击下载好的软件安装包,之后点击“IAgree”TmStaIr按钮即可安装Fiddler工具。安装完成效果如下图所示。ProgressTelerikFiddler:CompletedCompletedShowdetailsJun-27-18v5.0,20182.28034<BadcClOSe第三步FiddIer工具配置。打开刚刚安装完成的Fiddler软件,效果如下图所示。Progress Telerik Fiddler Web DebuggerFile Edit Rules Tools View Help.WinConfig QReplay X * Go * Stream 隔 DeCOde IE*zHrn>zz*HpHPS*Hp*z*HTTP Ul©22222 2 2 22222 町,-22222I20(so5050so505050so5050so5020(50so505050so10111213M151617181920212223242S26272829303132333435 W 一二一一八二一:二二:二一八,鱼宜立<Host TaInel to Tmnelto Ttjinel to Tumd to Tirmelto Tnd to Turmd to Tnd to Tnd to Tnel to Tunnd to Tirndtohm.bad.com Ttxmd to Tnel to Tmndto Tiwd to Tmnd to Tumel to Timel to Timd to Tumd to Turmelto Tunnelto TirmeltoURLa小m0 付 8 18ck- 18d dents l.goo:44 dents l.gooflte.axn:44 dents 1.9oogle.cocn:44 dents l.googte.cocn:44 dents 1 goote. co44 dents :44 dten :44 dents l.gooz44 dents 1.9OO0le.c(xn:44 CientSLgOote.cwn中 Cknts 1.9oogle.axn:44 entsl.gooz44 w.gPcc=18ck=lSd CientSl . 900” GXn: 44 dents l.gooie. com :44 cn ts 1 , gooie com : 44 CientS Lgoo.com中 dcntsl.9oie.ccxnzH dents l.900gle. com :44 CkntSl Q00ie. ccxn+ dents :44 dten ts 1 . 900* com: 44 dents l.Qoz44 dents l.Qo44 dents L:44 "Keep: All sessions Any Process 为 Find Q Sove夕 AutoResponder 劣 Composer QQ Fiddter Orchestra Beta, FiddIerSaipt g Log Fiters = TimeSneO Stabsbcs Inspectors令 ProgreSSKendO URecommended by the iaMost read in JavaScript: Tips for Optimizing yourAngular Application Read Article点击上图中“Tools”菜单下的“Options”按钮进入工具配置界面,效果如卜图所示。点击图中七。所。明。的”按钮,之后进行端口号的配置,效果如下图所示。第四步手机配置。由于抓取的是手机APP数据,因此需要在同一局域网内进行手机网络的配置,进入手机WiFi修改界面,设置手动代理并进行主机IP和端口号的配置,效果如下图所示。WiredSSIDQ高级选项代理手动浏览器会使用HTTP代理,但其他应用可能不会使用。代理费!黄喜主机右192.168.10.233主机IP地址代理豳哥口8888FiddIer扒包工具设置的端口号对以下网址不使用代理取消保存第五步APP页面分析。配置完成后,即可使用当前手机打开需要爬取的APP,这里使用的是美团APP,页面美食网 Q六步查看APP信息。找到需要抓取的页面后,在FidClIer抓包工具页面中会获取到当前APP请求网络的路径,点击路径后即可查看当前APP的相关信息,效果如下图所示。aSWinConfigJReplayX»Go.Streamf溟DeCOdelKeep:Allsessions*AnyProcess的Find5¾Save萌3456789012345Sd¢444495555599999CJ9999*二:广比匕'*lu-广r.ft6.匕TJ)M)n)222222Resl2(x220(20(20(20(20(505050505050H11PH11PH11PH11PH11PZH11P霹HTTPH11PHostURLBodyCachingTunndtotng.me!tua.net-H3OTunndtoMng.mertua.net443OTunndto:443OTunndtong.mertua.net443OTunnelto:443OTunndtoimg.mtua.net443OTUnndto:443OTunndtodentsLgOOgtecom:443582-cache,must-rTunndto:443582no-cache,mst-nTurmdtocfentsl.googie.axn:443582no<ade,must-nTunndto:443582<ade,must-rTunndto:443582no<achejmust.TunndtodentsL:443网络请求路径582-cache,must-f一二R拨957一4UUI-'IUJ<ujcy.lmiUdil.>!Ll"200HTTP33,366藐懑黑懑淳懑席一VW222222coo222222c2o(2o)5o5o5o5oso5o22ol2ot5o5o5o5o5o5o29012345678901234565<l6(l6666e.e«el&7t777777l。999999999999Ch9-伫匕u*Lu,l1产。匕色曲c匕ft巴广iu"H<:443dentsL:443:443dentsl.QOO<>:443dntsl.googte.xnz443dentsl.google.axn:443:443sZmn.wpscdn.zH3xxfigwpstraycfig.js00582no-cade,must-r582-cache,must-r58211o<ache,must-582no<ad>e,must-n582-cade,must-rS82<ache,must-f01,137max-age=7200;E°582no<ache,mt<S82no<ache,must<582-cache,must-r582-cache,must-f582o<ade,must-f*582no-cache,must<43DTivate.ma×-aoeQuidcExccALT+Q>typeHaPtoteammore电FiddterOrchestraBetaHddterScript3LOeFiltersTnefre色StatisticsInSPeCtorS$AutoResponderWComposerIHeadersTextViewSyntaxViewWebFormsHexViewAuthCookiesRawJSONXML第七步代码编辑基本配置和信息获取完成后即可进行代码的编辑,将上面获取的相关请求头信息填入代码相应的位置,之后将爬取路径放入请求方法中进行页面内容的请求,之后通过JSe)N信息的分析,爬取需要的页面信息,如有需要可将信息保存到本地文件,代码如下所示。#弓|入Requests库importrequestsdefmain():#定义请求头headers=#将FiddIer右上方的内容填在headers中nAccept-Charsetn:UUTF-8”,“Accept-Encoding":',gzip,uUser-Agentn:uAiMeiTuan/OPPO-5.1.I-OPPORl1-1280x720-240-5.5.4-254-866174010228027-qqcpdn,nConnectionn:uKeep-Aliveuz,Host:,u)#循环请求数据foriinrange(0z100,15):# 右上方有个get请求,将get后的网址赋给heros_urlheros_url=uhttp:/# 美食的列表显示在json格式下res=requests.get(url=heros_url,headers=headers).json()# 打印列表foriinresndatan:print(i,poiuname)print(i,poi,'areaNamen)print(i,poiavgPrice,')print(i,poi,avgScore")printC'+=")if_name_=_main_:main();运行代码,效果如下图所示。梨花发团烧肉井(天河城店)和平路395÷÷÷÷÷÷÷÷÷÷*彤德菜火锅(天河城店)和平路62电老二农东铁锅炖(张家通店)天津南站73屯老二农家铁锅炖(双街店)双街69火沪火烤肉芝士排骨(世纪都会店)滨江道81新辣道(荔隆店)北郊/泉州北路81任务2爬取豆瓣电影TOP250任务描述本任务以豆瓣电影TOP250为目标,爬取目标中的中文电影名、年份、评分、评论人数和最热评论的信息,并将爬取得到的信息存入为本地文件,最后将排名前10的电影信息(评论人数、评分)可视化显示。实现本任务的思路如下:(1)明确爬取目标及所需要的效果。(2)根据URL爬取网页数据信息。(3)对数据进行保存。任务步骤第一步打开豆瓣电影TC)P250,如下图所示。movie.doubanxo<n/top2S0sa豆腐电影电影.M!. trz. KA据讯甜承给 电祝整 推行一据停2019年赛明2019拈霎盲报国习豆解 2019 lt*B*豆财户和5 .i的电彩道行很.加加 的洋份.且6UMH变片的人数以及卡 脸杆公小合InB. QJt孙行产生与3« Top 250.豆瓣电影Top250月拿礴15»/TheShawsnankRedempewn/月IWruiVWn咯却向财WlR第拉松恃FrankOsrabcm£*:W再=TlmRotbinsfi9nac11M9720086Ai>“库里让人fil的.RBB>fK!B.发的套/FmeM蜘COftaJMe三tt»MftKaChenXIesMCtwung*FngyiZM1993*SLt见中国用Bdin同性f96148S163人制第二步观察访问的网址,会发现豆瓣网URL为:https:https:TOP250网址中的每页URL中“start="后面的数值是不一样的,并且是在上次的基础上累加数值25,根据这个规律可以爬取豆瓣电影TOP250网址中所有数据信息。抓取豆瓣电影top250首页代码如下:importrequestsimportreimportjsonheaders=nUser-Agentn:nMozilla5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTMLzlikeGecko)Chrome/58.0.3029.110Safari/537.36SE2.XMetaSr1.0,)url=,'http:,http:/123.207.96.189:800)response=requests.get(url,proxies=proxies,headers=headers)text=response.textprint(text)具体效果如下图所示<100CTYPfMal><htllg三ehCl*c14¼三aM-windows<hed><cthttp-equiv»BContent-Type-conteflt«Mtext/htal;chrs<ttitf-8><otafVM««*rndrercontent®wbit><Mt«11*rferr<rcontnt*alMysa'><Cne-*goo<l*it-verification*coot#nt-"okewCgT?etBBfo9,zat2iAcietMFtf5cc*hie92Xeyw-><titl>5WiUBTopse<titl><at4rMWvwbaidu-sitverification"cont0t9*cZdR4xxft7lbMxEa><rt*ht¾pwivsPraf<content<*no>cctww><ethttpe<uivxpire»*content-$««>6M*200501CMT"><linkr<18*App)toh-icon*hrf三w'.、.,<linkhrf-.rl*tylhet*type*fMtc>>*>Cinkhref-,.,"rel,styl5heeftype-"text/c*s-><linkhrfw',.-."rl*stylsht><scripttypa*txtjvMcripta>vAr_ZX_N.rtnwDat()i<script><scripttyp*ttjv<rittr<.,l-.><xript><l<rlpttyp*txt)*v4ft<rlpta*rc-><*<rlpt><cripttyp*txt)avacrlpta*sffcc*;.«.,L,.,,:EW!,3,:j::'.八;-.:.*><cript><1inkhr>f-rl"tyl.hw1"typ-txt/c><scripttyptextjVcript*rc'*dt*cfgutolod-*faH*><A<ript:第三步抓取每一部电影的信息。在网页右键点击“查看网页源代码”,效果如下图所示。9<li>w<divclassite>><dvclsj*pic><mc->27<<><hrf-httpj/>ov.doubwucob/Aibjecty12M141*><mgwdth三*100*al3"15万证人.rc'htt>/mldouban,。.cov工DhorN工0DOgtrpulAcD1606M2M8bD"clas*></t>dv><divclaw*nfo*><divclass*hd*><ahref-ahttps/bovxc.doubn.cosubject!296l41class*a><span门3£3飞鼠1">控方证人</»31><spanclxjj-*title*>4nbjp./tobjp;WitncjfortheProsecut0n<spm><fjxancl”r"otber'l®Mp:/inb8p.it才fl58/fi<jpan><>spanclaffs*"playable>>(ftfit<span><div><divclMs*bd*><pclasr,<*>导漏比利忤尔ifBillyVx】d"&hb«p.ftnb8p&ib即主演豪91Ie华TyroxPowrZ玛Ml.<br>1957ftnbp.Sb8p.美QOfcnbXP.nbtp.用情UB9Up><divclm*star-><spanclM5*ratin5-t-><spn><11>anclMS*rtn-ma*PrQPertLVaverage*>9.6<9pn><fFanprc<11y*vb*cotnt三*10.0*X/«pm><11>an>277751人评价<fptn><div><pclM*ute<*><rpanClaSb"inq">比利怀微黄分作£<ffpan><p><div><div>n第四步提取电影的信息。通过上图可知每个电影的信息对应的源码是VdiVClaSS=%er>节点先用正则表达式提取到每部电影的所有信息:regix=,<divclass=nitem',>,class为pic的div节点包含电影的排名和电影图片信息,提取电影排名和电影图片信息的正则表:regix=YdiVclass=item><*?<divclass=',pic>.*?<emclass=,>(.*?)<em>.*?<img.*7src=(.*?)class=,">,ClaSS为info的CliV标签中包含了电影的名字、导演和演员等信息,电影名字是在CIaSS为hd的div的节点内,VSPanCIaSS="title",节点内包含的是电影的名字,<spanclass="other">节点内包含的是电影的别名,上图中的褐色框部分,因此提取电影名字的正则表达式为:regix=YdiVclass=,item',>.*?<divclass=HpicH>.*?<emclass=""(.*?)</em>.*?<img.*?src=n(.*?)”class=nn>.*?divclass=,'info.*?CIaSS="hd".*7class=titlen>(.*?)</span>.*7class=,other>(.*?)<span>1class为bd的节点内包含的是电影的导演和主演信息,其中class为“”的P节点内包含的是电影的导演和演员信息,其中还包含了vbr>标签,上图中的紫色框部分,为了提取电影导演和演员的信息,正则表达式改写为:regix=,<divclass=nitem>.*?<divclass=pic,>.*?<emclass=n,>(.*?)<em>.*?<img.*7src=(.*?)”class=,>.*?divclass=1'info.*7class=,hdn.*7class=,title>(.*?)<span>.*7class=,other>(.*?)<span>.*?<divclass=bdn>.*?<pclass=1'',>(.*?)<br>(.*7)<p>,CIaSS为Start的div标签中包含的是电影的星级和评分,上图黑色框部分。提取星级和评分的规则和提取电影排名、图片等信息类似,最后提取整个电影信息的正则表达式为:regix=,<divclass=,itemn>.*?<divclass=pic>>*?<emclass="n>(.*?)<em>.*?<img.*7src=n(*?)”class=,>.*?divclass=ninfo.*7class=nhd.*7class=title,>(<*?)<span>.*7class=,other>(.*?)<span>.*?<divclass=,bd,>.*?<pclass=*'>(.*?)<br><.*?)<p>.*7class=,star.*?<spanclass="(.*?),><span>.*?spanclass=,rating_numn.*7average,>(<*?)<span>,提取一页中所有电影信息的代码如下所示importrequestsimportreimportjsonheaders=uUser-Agentn:,Mozilla5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/58.0.3029.110Safari/537.36SE2.XMetaSr1.0,)url=,nhttp:,'http:/123.207.96.189:80'1)response=requests.get(urlzproxies=proxies,headers=headers)text=response.text#print(text)text=response.textregix=,<divclass=,itemn>.*?<divclass=pic>.*?<emclass=1''1>(.*?)</em>.*?<img.*?src=n(.*?)class=",>.*?divclass=,info.*7class=,hd.*7class=',title>(.*?)<span><*7class=,other>(.*?)<span>.*?<divclass=bdn>.*?<pclass=1'n>(.*?)<br>(.*?)<p>.*?ClaSS="star.*?<spanclass=1'(.*?),><span>.*?spanclass=,rating_numn.*7average,>(.*?)<span>,results=re.findall(regix,text,re.S)foriteminresults:print(item)运行代码,效果如下图所示。.Qh,m1ric*>aI>t.BIWi,3少ItmiF*ew11、CkmMi.,U«»«B9>。廿O.-,WU出府W"iw,三*M砒S”1K-*ow<4IiHUAuT,.'*2"r2;染+/<*<)tHIH身!MIucIylC,.三i,u*pj<tp;-/tnBMMtIfui*.nCe.;au'H-.b"KA.,Pi4nt>*PittiieW(/).n叫Wme÷MJi(一<,yit.tmft>IV<al*f'.千与?.jM"2M>Jr(ll)/+H.V三WMiyx*g三w.ggn,力g懂WG)/WBWJyM:股RjwFE乂<,.jti?jxtcX,n4dLlZft.三rw.E)/取f«7<hri,tcV1.ettt.2r.ir;EM(削/"三HJ).、mE9,<<.a/rrr.fl>"v”洒/-wwme,vCU*g*H1j<1J.ShWMR-.3»3>,04人4舞)/Mtt,.*WEMetrCl!r,mu',三X<tJM,fpi*NM(e>/ffT三>WA(l),UIHrMJ4(4-.三CiB.旬/XJMR«(«>>.>>9安*1Wj>F蚯修工,3三ltt<»第五步下载网页中的图片,将每部电影的图片保存到本地,代码如下defdown_image(urlzheaders):r=requests.get(urlzheaders=headers)filename=re.search(,/public/(.*?)$*,url,re.S).group(1)withopen(filename,wb')asf:f.write(r.content)第六步将爬取的网站信息保存在文本文件中,代码如下:defwrite_movies_file(str):withopen(,douban_film.txt,a,zencoding=,utf-8,)asf:f.write(json.dumps(str,ensure_ascii=False)+,n')写入文本文件用到了json库的dumps方法,该方法实现了字典的序列化,并且要指定ensure_ascii参数为False.保证中文不乱码。write_movies_file方法传入的是一个字典的参数,因此在爬取到一部电影的信息时,需要将电影信息格式化为一个字典,代码为:results=re.findall(regixztext,re.S)foriteminresults:yield,电影名称,:item2+,+re.sub(,&nbsp;,item3),,导演和演员,:re.sub(,&nbsp;,z,item4.strip()z,排名,:item0,评分':star_transfor(item6.strip()+,/,+item.+,分9)到目前为止,我们己经实现了爬取一页电影的信息,一页包含有25部电影,250部电影有10页,之前已经提到过,改变Start的值即可抓取不同页的电影,下面的代码是构造10页电影Url的代码:foroffsetinrange(0,250,25):url=,top2507start=,+str(offset)+,Sfilter=*此时运行代码,效果如下图所示.(三BW/大a三*令台)/?Wi-.WKXSM:W1:大B芬命ZVk“zh-rjUR:m/书.(»«««:期翔。«员:乔明壬JU4tja三e王演:条5:fotr/安.二槽&:ae)(Be>:M5W.*iWCt*:W.0«Q布EErici,/】今IMMBJ.F"CrubT.-.>(Wlir:北乍超/HWyTctrwc.WPQWJB-Wh王«PIUrw«ift«.鬣*HOm*/V1R<mrLu.t.W)电瞬力*:M闭6/不g)/丽g员M2UcSCE“1算>ML0M40MCM-1/.Wft-3')(HI5B/金人讨台),W11UW58s中“暂由TzW”3“M-切÷珏Miklac”/三u三.,Hft:'MCtfiBfeft-OWST/O35MT.311O15M至JWGUSYX5m诩:OWE2”D>o11/FR.M5,s>(,嗓的名期用WW大皿/布达IW0)/wpwuwxt(fe>,jw三a:三RS病拉尔大型的*】(*“=”/.««:)回BeWr.RRft,天下山显)/&392W才:G三;EFMW1一、Cixm主茶内!.恭辛”、“5EnCtM.博名7)(,曲2修:三n*/nxie«(«)/刀¥iB”雷ma不察:«»»»打1的卦»:妁30,加“ow/0«.嫁名:”)(一名:*flOW三T()/岭西修龄之本色(色)明gXRWW:*F古=21CibELW:愀T*P21Gt>8/环”吗.,,JM名;M")rW名尊:摩WW代fhMac/odE3l.W11Q>:,=0及aChrl.Ch4pHnl>:MjOM<CnSC21S.,.»«:,)(««;»,:eWTI/爻方中世(任)/A三x*R,<t1:'W:5皮"MJgMtjJI:ftMBWBAudr*ruw.,»«:(WSW:,MUJ/KinofAd/IMnCa5E5tnh*Chow/9WIUChi18主演:MttCh.'.-W)(W5W:WiD*/jm/电创WRa员:够:E三JHMt*、Jold主演:nSFJohcCwa<k/B.:w)电鼻!5曰:*tt

    注意事项

    本文(《数据采集技术(初级)》实验手册项目6:项目实战网络爬虫.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开