还剩12页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
实验一网络数据采集实验
一、实验目的网络爬虫系统的功能是下载网页数据,为搜索引擎系统或需要网络数据的企业提供数据来源本章内容介绍了网络爬虫程序的编写方法,主要包括如何请求网页以及如何解析网页在网页请求环节,需要注意的是,一些网站设置了反爬机制,会导致我们爬取网页失败在网页解析环节,我们可以灵活运用BeautifulSoup提供的各种方法获取我们需要的数据同时,为了减少程序开发工作量,可以选择包括Scrapy在内的一些网络爬虫开发框架编写网络网络爬虫程序
二、实验要求
1.1采集网页数据保存到文本文件访问古诗文网站(.gushiwen.org/mingju/),会显示如图3-5所示的页面,里面包含了很多名句,点击某一个名句(比如“山有木兮木有枝,心悦君兮君不知为,就会出现完整的古诗(如图3-6所不)
1.2采集网页数据保存到MySQL数据库编写网络爬虫程序,读取网页内容进行解析,并把解析后的数据保存到MySQL数据库中,
1.3XPath语言了解Xpath的基本术语及语法
三、实验步骤
1.1采集网页数据保存到文本文件下面编写网络爬虫程序,爬取名句页面的内容,保存到一个文本文件中,然后,再爬取每个名句的完整古诗页面,把完整古诗保存到一个文本文件中可以打开一个浏览器,访问要爬取的网页,然后在浏览器中查看网页源代码,找到诗句内容所在的位置,总结出它们共同的特征,就可以将它们全部提取出来了import requestsf/OM bs4import BcaatifbdSootpimporttitMC#函数2请求网页defresponse=Hequests.g七lAW’headeKS=/itmf=respo八se.co hreturnl^t^vxl#函数2解析网页defsou=parser1文件编辑查看.解:山上有树木啊树木有Y枝,心中喜欢着你啊你却不知道・・■解释:当年在夜月里,我们共同醉入一帘幽梦,温柔的春风吹拂着你我.\n赏析一帘幽梦,十里柔情,此句颠含蓄,情致悠长,■解释:专心读书,不知不觉已经到了暮春时节,一寸光阴就像一寸黄金珍贵,・■解释:山上有树木啊树木有Y枝,心中喜欢看你啊你却不知道・・■解释:当年在夜月里,我们共同醉入一帘幽梦,温柔的春风吹拂着你我.\n赏析一帘幽梦,十里柔情,此句蕴II含蓄,情致悠长,■解释:专心读书,不知不觉已经到了暮春时节,一寸光阴就像一寸黄金珍贵・,好友群观■解释:桃网和李树不主动招引人,但人们都来看它们开出的鲜花,采摘它们结出的果实,在树下走成了一条小路.比喻为人品德高尚我的设备1/
1.螃:©我的文件用不到去歌唱当年皇帝妃子的悲欢离合;在人间也有银河,使得千千万万人家夫妻离散小文件多6•解释用于劝人要不耻下问知道自己的不足要虚心请教,认为请教可耻的人会骄傲自满0・特别关心0/1■解释产生万物、养育万物而不占为己有,作万物之长而不主宰他们,这就叫做“玄德我的好友156/1・■解释明达的人防患于未然,有为的人不等到国家混乱才治理・解释听从上天的安排,顺其自然,不因长生而喜,也不因短寿而悲•・■楚人伐宋以救郑宋公将战.大司马固谏日天之弃商久矣,君将兴之,弗可赦也已“弗听冬十一月己巳朔,宋公及八班颇悠■解释精卫含着微小的木块,要用它填平沧海,,■解释没有刚劲正直的节操,就不能纠正奸佞的行为・・解释终有一日会沉冤昭露,事已至此,就黄再思虑了・行30,列1100%Windows CRLFUTF-
81.2采集网页数据保存到MySQL数据库SSC:\WINDOWS\system32\cmd.exe-mysql-uroot-p卜-----------------------------------------+irowsinset
0.01secoysqlUSEWEBAB;atabasechangedQysqlSHOWTABLES;Tablesinwebabsearchindexrowinset
0.01secselect*fromsearch_index;set
0.00secselect*fromsearchindex;idkeyword|number大数据1187767云计算21788563物联网1223761大数据1877672云计算1788563物联网1223766rowsinset
0.00secS poems.txt-记事本消息陆二m«生于华EJfileEditViewN«vigateCodeBHactocRynlooKVCSWindowHdpdayOS珞电l短序.py ff,Prqect nwetxdenKJhtml伍是史阳yiidayOSconnecta品malnpy肃wcbo_demo.html裕pymysql.Connecthost*localhostKillExternalUbranei,,portz3396,users*root•/#玫/ScratchesandComokn oa^sAd=Lcjl71811|,,#“=connect.cursorCconnect.closeOntml=get_ht»linfo.list=parse_ht«lhtmlsave_mysqlinfo_listi*w_mytqlO d«fparae.htuKhtnl:Any-;Run:O:\ProgramFil«s\python\python.exeE:\抠不便Hi处即\day85\n虫附序.py__ProcessfinishedwithexitcodeQPVrnionControl►RunaTODOOPioblem0Teniwul念PythonPMkf♦PythonComoieOSMVKHQPMkdoesimtdllecluxceisfully:Imtalledpackages:cryptociraphy*amifiuteaqo44:26CRIIUU-84州-Python
3.
11、
1.3XPath语言IB Qgbk codeX口,gbk codeX Qcryptogra X Q63条消息X S大数据软件X0BigData ScX+Qft
①文件|E:/专业课/数据采集与预处理/day05/webo_demo.html於羽彷☆G未同步*…html text=BigData SoftwareThere arethree famous bigdata softwares nd their names are Hadoop,Sparkand;and theyare widelyused inreal application.others from Ixml import etreehtml=etree.HTMLhtml texthtml data=html.xpathbodyprinthtmldata00title=soupCtitle1sentence=soup select^div.I ePtdiv.sonsdiv.coct-of-typeiypoet=soixpselect^div.leftdiv.socsdiv.coi^t〃:八tk-oF-tgpc2sc八tc八cc」ist二口hrefjist=[]for iM匕4八朋7©的0八tc八cc:tei^p-scAtCACc[i].get_textO+11+poet[i].getfextsent八ce」is七.app八dtei/v\phkef=se八t°Ace[i].getC hkefhkcf」ist.appcndhttps://so.giAshiwcA.OYg+hrcf#函数3写入文本文件def savc_txtMfo」ist:import jso八with opc八HD:\\sc八tchcc.txt,%,八codi八g=/〃tf-8/as txt_file:for i八Mfo」ist[L]:txt_file,writejso^dAkv\pselekv\ei^te^ore_ascii=False-bf\^\^yJ#子网页处理函数进入并解析子网页/请求子网页def sixb_pago_Y°q认esti八fo_Jist:sabpagcHs=Mfo」ist]ua={User-AgcctTMozila/5QWindows NT
6.1;WOW64AppleVJebKit/537,3KHTML,like GeckoCksMc/46Q.24qo.8£Safari/S
37.3^]subjtn”=口for uHiia Shbpagc_bHs hti^xl=pagc_KcqACStAk,basub_htM.appeAdktMretria sob_htkv\lA#子网页处理函数解析子网页,爬取诗句内容def SLtb_pagc_parsesiAb_htMl:po°M」ist二口for ktim/M subJtiM/:soup=poei^x=soupselect^div.left;divsoi^sdiv.cov^tdiv.co心onpock=poei^
[0].get_textQpocM」ist.appcAdpocM.stripOreturn pocM」ist#子网页处理函数保存诗句到依土def sub_page^avepoei^_li^tyimport jso八with op c八L D7p ocMS土乂t Jac八c od ing=at f-2as txtJiI e:for c/emc八t inp心」ist:txt_f〃c.wntcjsorvd〃MsRcMChtjCns“KC_4SC/7=F〃kc+/\n\n/if_v\aw\c_二二_w\aiv\_:片八土〃*兴**兴兴兴兴兴兴兴兴*兴兴兴开始爬取古诗文网站为**兴兴兴兴兴兴兴兴兴兴兴兴兴兴*〃iAa={UscAgentTMozila/5Q WindowsNT
6.1;W0W64AppletebK.it/S
37.36KHTMLjikc Gecko
90.86Safari/^
37.3^]for ii八r7mgc1j4:uH=https//so.gAshiweAQ^g/MMgjiA/defaLdt.aspxp=%dc=t:=l%D珀依c.s/cc2ktM【=p agc_rcq认est aH jiAaMfcdist=pagc_parschtMlsavc,xtMfo」ist#处理子网页p以八〃开始解析第%d〃%(/)+〃页〃)#开始解析名句子网页sabjtm/=sab_pagc,cq”cst(Mfo」ist)pocM」ist=so(b_pagc_paYSC(Sb(b_htM()s ub_p〃gc_s〃Mc(p oc恒」/st)pnVvt(〃兴兴兴兴兴兴兴*兴兴兴兴兴兴兴兴兴兴爬取完成兴兴兴兴兴兴兴兴兴兴兴大兴兴大兴兴兴兴兴为〃)匕何土(〃共爬取%d〃%(汴50)+〃个古诗词名句,保存在如下路径D\\se八笈八ce.txt〃)”/认亡(〃共爬取%d〃%(i*5O)+〃个古诗词,保存在如下路径D\\.依廿)工.爬取iOCM到q页的古诗
2.在P盘新建pOCM.txt和SC八20八CC.txt
3.如图爬取文件内容MgsqLpgimport requestsfroMbs4import BcabctifudSootpf/OM pgMgsql import co^ect#读取本地HTML文件def getJtk/O path二七:\专业课、数据采集与预处Jl\d4g05\wcbo_dco.kthApl^tkvxlfile=op°MpathJMCodMg+btf-8=ktMfhadreturn l^\t^v\ldef parse_ht^v\I/itm/soap=Beabtifb/Sob/^lati^\l,,htkv\l.parser,q/Ltr=soup.fi八d_〃〃什[2:Jall_tirjist-[]Mfo」ist=口for iM rai^igelei^.alLtr:for e/cme八土iiaaH_jtd=eeMe八t.fMd—aMC1alLtdJist=[]for j/认nahgc/c八a ist.app八[jjstri ngi八fo」ist.appc八dal〔_J:d」istretbtria Mfo」ist#保存数据库def s〃vcgsq/Wo」ist:import pggsqLcads#连接数据库connect=pgMgsqLC八八ccthost=hcalhost、^01^=3396user-root1,#数据库用户名passwH=Lcj L7工工:LL#密码cl^airset=Litfs1#获取游标cursor=coi^imct.cursorQfor itew\/认Mfo」ist:id=iiatitei^\[O]keyword-itei^[^L]八=i八七72CM
[2]sq/=INSERTINTOse〃匕k_i八dex7d/kegw以〃〃小加匕VALUES,%d/%s1%ddata=id,kegwoU hc〃rsor.exec〃tcsq/%dataco八八CCt.COMkwtOp力八成功插入数据,#关闭数据库连接co八八cct.c/oscif_八〃36_==_小4,八_Mtmf=gets〃\zcgsq/info」ist
1.2采集网页数据保存到MySQL数据库由于很多网站设计了反爬机制,会导致爬取网页失败,因此,这里直接采集一个本地网页文件web_demo.html,它记录了不同关键词的搜索次数排名,其内容如下瓶port requestsf/OM bs4import BeaiAtifTSoapfnwpgMgsqlimportcoininect#读取本地HTML文件def getJtnWpath=,E:\C业课数据采集与预处理\d4g05\wcbo_deMO.ktKN ht心间=opcMpath,什+「c八codMg=tF-gMtmf=ktmfilc.rcadreturn defpaIkt^v\f:soap=BeaotifiAlSobphtMJhtM.parse/=soup.fi八d_n依[:L:Jall_tirjist=[]Mfo」ist=[]for i/k匕〃八ge7c八4〃_tr:a_tH」ist.appe八daLtk[i]for C/CMC八土,八aHhJist:a_〃=C CMC八t.fMd_alCtdal LtdJ ist=[]for jM nahgc他八a_jtd」istappc八4aJ:d[j].stH八gMfo」ist.appci/\dalLtd」istreturn Mfo」ist#保存数据库def s〃ucgsq/Mfo」ist:import pg3gsqLcad”,#连接数据库co^ect=pgMgsqLC八八ect host=hcahost、^ort=3396USCH=什优#数据库用户名asswd二工工7工工”j#密码db+weba%charset-1utf8#获取游标cursor=c八八cct.c〃rsorfor ite^v\i八Mfo」ist:id=i八七7±CHAQJ keyword=number=i八27tCM
[2]sq=INSERT INTOVALUES%s,%d〃data=id,kegword,八i/vxbcr cuirsor.execiAtesql%dataco八八ect.coMMi±0pn认《成功插入数据#关闭数据库连接co八八cct.c/oscif—八〃C—==/_认_Mfo」ist-仆d0_兄3m/向想/savcg sqI i八缶」ist语言
①文件|E:/专业课/数据采集与预处理/day05/webo_demo.html/G未同步律…html text=BigData SoftwareTherearethreefamousbigdatasoftwaresndtheir namesareHadoop,Sparkand;and theyare widelyused inreal application.others fromIxmlimportetreehtml=etree.HTMLhtml texthtml data=html.xpathbodyprinthtmldataED
四、实验结果
1.1采集网页数据保存到文本文件D:\Program Files\python.exe D:/专业课/数据采集与预处理/day03/爬取故事网站,py****************开始爬取占诗文涧站******************开始解析第1页开始解析第2页开始解析第3页开始解析第4页开始解析第5页开始解析第6页开始解析第7页开始解析第8页开始解析第9页******************1胆取完成*********************共爬取450个古诗词名句,保存在如下路径:D:\sentence.txt共爬取45个古诗词,保存在如下路径:D:\poem.txtProcess finishedwith exitcode08sentence.txt-记事本好友群聊文件新辑查看我的设备1/1©我的文件助手山有木兮木有枝,心悦君兮君不知-佚名《越人歌》.■・・・小文件多端漫游7天,大文件局域I夜月一帘幽梦,春风十里柔情-一奏观《八六子倚危亭》特别关心0/1■•・我的好友156/177读书不觉已春深,一寸光阻一寸金.一王贞白《白鹿洞二首其一》■••・卜陆二班朱I8晨X■山有木兮木有枝,心悦君兮君不知・---佚名《越人歌》・生于华电其生何幸!我深醐夜月一帘幽梦,春风十里柔情一秦观《八六子倚危亭》机会是总会有的,但如果再有.我■••・读书不觉已春深,一寸光阴一寸金一王贞白《白鹿洞二首其一》■••・八班顾悠扬■■桃李不言,下自成蹊--《史记・李将军列传》・莫唱当年长恨歌,人间亦自有银河一■袁枚《马嵬》■•・知不足者好学,耻下问者自满--《战国策齐三楚王死》,■••生而不有,为而不恃,长而不幸是谓玄德一《老子道经第十章》■・••・■B月者防于无形,治者制其未乱---《隋书・列传•卷四》-纵浪大化中,不喜亦不惧.陶渊明《形影神三首》■・nQu..CD0用人WBMTAU中暂,。