《《数据采集技术(初级)》实验手册项目4:抽取网页数据.docx》由会员分享,可在线阅读,更多相关《《数据采集技术(初级)》实验手册项目4:抽取网页数据.docx(8页珍藏版)》请在课桌文档上搜索。
1、任务1使用XPath提取网页数据任务描述在数据采集过程中,需要熟悉网页的数据提取和拆分。本任务是使用GoOgIeChrome浏览器辅助构造XPath提取浪潮官网中轮播图下面的列表信息。使用XPath提取网页数据的思路如下:(1)打开浏览器,找到对应的网站地址。(2)使用“检查”的方式查看网页源码。(3)使用GoogleChrome浏览器实现XPath路径的保存。(4)构造截取信息的XPatho(5)编写代码,使用python中的Ixml截取所需信息。任务步骤第一步百度搜索浪潮大数据,打开浪潮官网。C https /Www inspurxQm Iva 存U动Mr 400&0YTOe w mwMf
2、 4ooaoo 曰考RamE 8oyo7m*u,on1iM1MM”25WI“WxdnX-ISO%.*当业、专注的自主切新理念,提供安全霆X.智畸I台的存他产品及解决方家,充捌工做企业或应用Ia云、大效据、.充分网09业务原统陶霹茕动,A住舐,搔俊程性堤、可用.效率的IT费号.ScuEvMHtsNetworkTnrwraA*nfUwuc*Scw*tAWdQConaotoW,.Sgr.gk“23B4Rr33八八lr-【:门”tituU$vMHb则彳:6电良或ulfWPTbUIS人“加TE%多Ib优化gfll户&ttzvY-t*“stl-*tyl-MgKCgt81Hw0rc4XZ8WClwlRIWt
3、Ta)M.Sl(U:2M;U.。丫,3,11,*1.,243.M,S,4p.(-T,-rnn*Pr*r*f-O-第五步选定要提取的位置以后,开发者工具窗口的代码如卜.图所示。口出删关S应用主机承.审业、专注的自主IM淅现念,安全盛次、哲髭融台的存何产区及解决方案,充分海定传貌企业俄应阴粕云、大数Jt修充分副g三N翼埼IE5动.Afi皿L.E用、效率的ITj三3.91M*.tylIAidsWliiud.tbXMCMrotfM:E”G4lv*41vCUss-POrtltt-1。“XWXTXgH447)XCt3l09加12卷”7497窗3小$4.Olv41vcl*ssportletio11B1O71
4、M4MM22MCO9*m2i299n470M5W)l)etU0ilpXy:p;-dlv-16.5Zi-dC:1M).SW*(*Uat:l*t;wit*:27;acfift.right:11;Mjdwco*H力Sd*2OMa5W4d叱56、第六步在上面单击右键,选择“Copy”一“CopyXPath”命令,如下图所示。寻找一个可以输入文字的地方,把结果粘贴下来,可以看到如卜的XPath语句:/*Qid=nIl151f3a715d42088f88f2f2a5934cfaciiv2div1/table1这种写法是可以被IXml解析的。方括号中的数字,表示这是第几个该标签。例如/*(5)id=,111
5、51f3a715d42088f88f2f2a5934cfadiv2,表示在id为“11151f3a715d42088f88f2f2a5934cfa”的标签下面的第2个标签。注意,这里的数字是从1开始的,这和编程语言中普遍的从0开始不一样。在开发者工具窗口中,每个标签的左边有个小箭头。通过单击小箭头可以展开或者关闭这个标签,通过这个小箭头,可以协助分析页面的HTML结构。请注意下图方框中的每一个VtabIe标签。这些方框中的Vtabie标签就对应了每一条信息。通用服务器人工智能服务器存储持续创新,引领ITE础设向发展,专汪于客户需求,以匠人精神为客产都送滇就从单机4十到64卡一群 的不同人工智能
6、计H平台,广泛应篥承”专业、专 念,提供安全谶GSoixcesElementsNetworlTunelineProfilesResourcesSecuntyAuditsConsole divclsportlefid-42deeflet)71421594cl4M5fS5t57oe*!uleldM6276f5424cc82e4fewduleidlb9SMdlf2466e9749722e/41cSe4.div-divclss-portlt-id-lllSH71Sd42MSfMU2S9Ucoge三oduleidbe29tll47d4MS94931S*divlignlHfcXss-portlet-hed
7、rstyle-disply:ooftyK-stylt)vhtmbodydrvconUP*v*nndv11151f715088Sf259Md9mcp_Rm.ttW3-S第七步定位目标,获取想要的HTML代码,代码如下所示,#coding:utf-8importrequestsimporturllib3fromIxmlimportetreeurllib3.disable_warnings()url=,https:/dom=etree.HTML(r.content.decode(utf-8n)block=dom.xpath(*0class=,inzd_tabl,)#打印提取到的结果t=etree.t
8、ostring(blockO,encoding=,utf-8,pretty_print=True)print(t.decode(,utf-8)说明:代码中第二行importrequests为引入Python的一个常用的第三方库,用于数据采集过程中的URL资源处理。在使用过程中需要先进行安装,安装命令为pipinstallrequests.效果如下图所示。KEbIAKI:C:UsersAdmnstratorDesktoptest.pySqueezedtext(5786lines).通用服务器 tdclass-*incpsumtitle3tssum持续创新,弓I领IT基箍设随发展,奇注于客户需求,
9、以II人精神为您户提供专业、优化、高效的产品体蛉。查看更多第八步构造IXmI,提取table里面的内容。代码如下,tl=block0.xpath(,tbodytrtdatext(),)#打印结果print(tl)效果如下图所示。三三=三三三三三三三三三三三RESTART:C:UsersAdministratorDesktoptest.py通用“务器,查看更多,人工智能服务器,查看更多,存猛,查看更多健应用主机,查看更多,?近平总书记勉励浪朝再接再厉,维查看详情,Y技战“疫”,浪淳1为各行各业隹下.,查看详情,献礼70年奋进新时代】浪疑唱查看详情任务2使用正则表达式提取网页数据任务描述在爬虫的开
10、发中,需要把有用的信息从一大段文本中提取出来。正则表达式是提取信息的方法之一。本任务是使用python正则表达式拆分浪潮官网的数据。使用python正则表达式半自动爬取拆分浪潮官网的数据思路如下:(1)打开编辑器,引入使用正则表达式所需要的包。(2)模拟浏览器请求,请求浪潮官网的数据。(3)使用巾ndall方法匹配所有的vh3标题。(4)使用正则表达式提取所有的链接。任务步骤第一步导入模块re模块:PythOn内置的正则表达式模块。requests模块:http请求模块。urllib.request:主要用到里面的headers模拟浏览器请求。importcsvimportre#导入pytho
11、n自带的http请求库urllib库的request请求模块importrequestsimporturllib.request第二步使用requests爬取整个网站,代码如下。#html存入了整个网页内容html=requests.get(,https:/html=html.text第三步使用正则表达式匹配网页标题(title)通过对源代码的观察我们发现,需要的网页标题title是放置在vMtevtitle之间的文本内容,那这个时候就需要用到正则表达式来匹配其中的内容了。,(.*7)o代码如下title_re=,(.*?),第四步使用findall方法匹配所有的vh3标题article_re
12、=,.*,article_titles=re.findall(article_rezhtml)forart_titleinarticle_titles:print(art_title)输出效果如下图所示oI-o=RESTART:C:/UsersZAdininistrator/DesktopZzhengze.py=三R*三eaaoNewaclass=*title2*href=*http:/*target=*blank*a-ee-a,ja0aclass=*title2whref三*lcjtw2317452/2367100/2367103/index,html*target=_blanka三ajac
13、lass=*title2whref=*ao三aja.a5aj三az三e.三-价2Eag三-三a,三aih(XHIv1.n:4686Col:46j。第五步使用正则表达式提取所有的链接。url_re=,.*7,article_url=re.findall(url_re,html)forart_urlinarticle_url:print(art_url)效果如下图所示。J,JJ,WW,FPJUJ/aaFKI,SKJLJJ23_Jlcjtw2426043index.htmlwCIaSS=s_a/1CjtWW/247833index.htmllcjtw24783312477733index.htmlc
14、lass=*s_ahttp:/218.57.146.157:8080/Web1800/Service/Index.aspx?GpId=&ClientType=iscompact&Version&.id8080205&bgColor&ud&SBTIDB0&TaxNumber*target-*blank*ClaSS=sa/lcjtw/2315417/2316944/2327201/2327623/index.htmlA,class=*salcjtw231549923155032316859index,html*class=*s_alcjtw231549923155032315607index,ht
15、ml*class-*s_alcjtw2315499/2315503/2378047/index.html*class=*s_alcjtw/2315499/2450369/index.htmlClaSS=s_ahttps:/cloud,inspur,coj*target=,IankClaSSHs_ahttps:/clouderp.inspur,conarketindex,html/home*target=*-blank*class=*s_ahttps:/ww.inspur,com/eportal/ui?pageld=2317460*class=*s-alcjtw2435828index.html
16、class=*s_alcjtw2317452/2367100/2367103/index,html*class=*s_alcjtw/2312126/2432763/index,html“ClaSS=s_ahttp:/partner,inspur,cowtarget三*-blaxk*class三*s-ahttp:/scs.inspur,coj7v=20180903*CiaSS=s_aeportalui7pageld=2381142*ClaSS=s_alcjtw23149152374590index.html“class=*s_alcjtw/2412095/index.html*class=*s_
17、a,title=*#:title=二title=*style=*border:noneimportant:http:/WW*target=*_blanklcjtw2427679index,html*style=*color:#fff;font-size:14px;tel:/400-860-6708tel:/400-018-7700tel:/400-607-6657tel:/400-691-1766http:/218.57.146.157:8080/web1800ServiceCheck800ID.aspx?ID-8080205*target-*.blankhttp:/218.57.146.15
18、7:8080/web1800ServiceCheck800ID.aspx7ID三8080200*target=*.blkhttp:/218.57.146.157:8080/web1800ServiceCheck800ID.aspx?ID=8080201*target=,blankhttp:/218.57.146.157:8080/web1800servicecheck800id.aspx7id三8080204fetarget三supPorterfeClientType=VebEjnbedded*target=*blanklcjtw/2315417/2316944/2327201/2327623/index.htmltarget三blank*ClaSSlSflailto:webmasterclass=*sf1