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

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

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

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

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

    任务1使用Requests库爬取小说网站任务描述本任务是使用Requests库爬取214玫瑰恋区所有章节的网址,之后再将小说中每章节的内容爬取下来,保存在本地,实现本任务的思路如下:(1)使用requests获取网页源代码。(2)使用正则表达式获取内容。(3)使用文件进行操作。任务步骤第一步打开小说网站,找到“214玫瑰恋区”小说的位置。如下图所示。第二步使用requests获取网页源码start_url=,http:/book38487defget_source(url):IlIffl获取网页源代码。:paramurl:网址:return:网页源代码html=requests.get(url)returnhtml.content.decode(,gbk,)#这个网页需要使用gbk方式解码才能让中文正常显示第三步右键选择“查看网页源代码”,如下图所示。BreatheInEssentialOilsOPEN乖乖费尔作品集介:应叵()Ah*fflEW5211国明星李俊的成百Q手切二年出学生宁儿,国一次今外军碣结r.:5®Aft向U子头忖扑的易世:育人说的是独生子.有人说也是遗谖.色育人诧他是“豪独子.但Wg(E)Ctd*R了JlW月有为CtfkS政11(E).CtruP飞生H鬼VS小魔女第二我被他瞪了M三W三如。9成中文(而体)差点儿没命第六宣大闹直除蔼七宣l*RKlftS5SCuuu好友被多架明的联LsSrBlI"i三IT5ST-第四步点击之后效果如下图所示。<tbody><table><tablecellspacing""1*cellpaddxng三*,8*wdth*800*align-*center-bgcolL*d4d0c8"border*0><tbody><tralign="center*bgcolor="ffffcc"><tdalign三"center*ColSPan"4"><strong>正文</strongXtd>tr><trbgcolor-ffffff>><tdwidth-*,25*wXauef-e187729.html->«-St<tdwidth-m25%,Xairef-187730.html"第二堂<tdwidth-j,25*,><a>ref”187731.htmT>籥三章<tdwidth-*,25*wXaIref-187732.htm第四章<tr><trbcolor=ffffff*><td><ahref-,18773html。第五章<td><ahref-18773html,第六章<td><ahref=*18773html”第七章<td><ahref-,18773html'>第八章<tr><trbgcolor=*ffffff*-><td><ahref-18773html"第九章<td><ahref=*18773html">第十章<td>&«bsp;</td><td>4cnbsp:</td><tr><tbody><table>飞车ItilVS小魔女<a><td>被他吻了<a><td>有位帅哥宜取我"a><Ad>美里理身秀<a><td>爰点儿没命<a><td>大用医院/aX/td突来笠故<a><td>他的后妈是我西<a><td>好友被绑架<a><td>特别的礼物<a><td>由于网址存在于va>标签中,但va>标签本身没有特殊的标识符来区分章节的链接和其他的普通链接,因此需要使用先抓大再抓小的技巧。构造正则表达式,先提取出包含每一章链接的一大块内容,再对这一大块内容使用正则表达式提取出网址。由于源代码中的网址使用的是相对路径,因此需要手动拼接为绝对路径,代码如卜丁A343536"38394o414243444546"484985152535455565758596o616263646566676869defget_toc(html):获取每一章链接,储存到一个列表中并返回。:paramhtml:目录页源代码:return:每章链接toc_url_list=toc_block=re.findall('正文(.*?)<tbody>Ihtml,re.S)0toc_url=re.findall(,href=(.*?),ttoc_block,re.S)forurlintoc_url:toc_url_list.append(start_url+url)returntoc_url_list第五步点击“第一章”,查看源码,如下图所示。<tdheItht-alpyleftOccolor-WbFFFF?ftnbsp.ftnbs,<ahrefhttps/<w.kanunub.coM>HHi5M)<a>-Mt.<ahret-index.ht<tr><table><tablvdth三*880*bordr*0*align*cntr*coIlpadding-O"cll11>acn<*0*><tr><tdvdth-*880-he:LghL'5'btcolor-*«fffff><td><tr><tr><tdwidth-*880-hcghs'2-bccolor三W2659Cr><td><tr><tr><tdwidth-*880*he"hs'5"bccolor-Wffffff1,><td><tr>table><tablevdth三*880*border*"。alit11三*center*cellpaddin<三*O*cel】SPaClnL"0"><tr><tdvdth*880*he<ht*60*al<n*center*b<color-*#FFFFFF*XstronjXfontcolor*#dcl43c*sie*4*>第一堂飞空贯戈VS小黄女<fo<tr><tr><tdheight=*23*ali£n=*center"btcolor三*FFFFFF"XscrptSre="ads2024/CQntttIttitle728x9thMX/SCrH)t><td><tr><table><tablevdth*880*border*Oali<n*center*CellpaddingHTcellspacn<*O*><tr><tdwidth"*30*he<ht*23*altn*center*bgcolor*WFFFFF"><td><tdvdth=820alen=wleffbccolor=WFFFFF*><P>&nbsp.6absp;6nbsp.tobsp.(1)急夕卜车祸<br><br>tobn>tobsp:tobsp;&nbrp.“快崎,快点儿!祓摄到了秋可不欲你!”茂在林州美前面边跑边哪。<br/><br/>fcnbsp.OnbSAftnbSAinbsp.“十号儿,观且不助7。哎峭!或期!不过,那小子那个生气的样子息是好笑。R林I育美在他后头气嘿吁吁一提到刚才<br/>fcnbsp.fcnbsp;tobsp.tobsp.“少庞话,快点!"Ji叫菅,迅速落下她好运<br/><br/>fcnb=:5Up:5bsp:SbrP盘听到林美在我后头IftlihM亍馨儿,你这个没食心的!狼心狗修,忘恩负义,没U没义!<br/><br/>inbsp.ftnbsp;fcnb$p:4nb$p.这就是我的死克一一#精美,小学同卓,现在的成EB中学初二四班学生,与独所在的一班隔一个弱金。<br/><br/>fenb3p.&nbsp,&nbgp,&nbsp,我知道再听下去,她连电里爬外的话都骂得出来,又加快7脚步<br/><br/>印隶宁譬儿可是成田中字扪二年级的长J8处跑;3军,连续刷新过学校记录!这个时体不施展本铺更待何时?<br/>搜索源代码中的vp>标签和<p>标签,发现它刚好有一对,正好包裹着正文。而正文中的Vbr/>标签,则没有必要用正则表达式来去除,直接使用字符串的replace。方法把其替换为空即可。代码如下:defget_article(html):获取每一章的正文并返回章节名和正文。:paramhtml:正文源代码:return:章节名,正文chapter_name=re.search(,size=n4n>(.*?)<*,htmlzre.S).group(1)textblock=re.search(,<p>(.*?)<p>,html,re.S).group(1)text_block=text_block.replace(,<br>,)returnchapter_name,text_block第六步保存数据到本地,代码如下:efsave(chapter,article):VlIVVl将每一章保存到本地。Jparamchapter:章节名,第X章:paramarticle:正文内容:return:NoneVlIVTlos.makedirs(,214玫瑰恋区,exist_ok=True)#如果没有“动物农场文件夹,就创建一个,如果有,则什么都不做“withopen(os.path.join(,214玫瑰恋区Ichapter+,.txt,),w,zencoding=,utf-8,)asf:f.write(article)defquery_article(url):VlIfVl根据正文网址获取正文源代码,并调用get_article函数获得正文内容最后保存到本地。:paramurl:正文网址:return:NoneVlVVVlarticle_html=get_source(url)chapter_name,article_text=get_article(article_html)save(chapter_name,article_text)第七步编写主函数,代码如下:if_name_=,_main_,:toc_html=get_source(start_url)toc_list=get_toc(toc_html)pool=Pool(4)pool.map(query_article,toc_list)第八步programO>214玫瑰恋区-C名称修改日期第八章礴身骋朝.txt2020/5/613:18第二章被他吻了txt2020/5/613:18第九堂好友祓绑架.txt2020/5/613:180第六章大闰医院.txt2020/5/613:18C第七章突来变故txt2020/5/613:18第三章有位帅哥喜欢我xt2020/5/613:18第十章特SI的礼物.txt2020/5/613:18L第四登美男裸身秀t×t2020/5/613:18第五章整点J股命txt2020/5/613:18后第一章飞车魔鬼VS小魔女.txt2020/5/613:18ACC任务2写入读取数据任务描述本任务是爬取html-color-codes网站的tr标签里面的style和tr下几个并列的td标签数据并保存到数据库中,通过数据库命令查看表中的内容。实现本任务的思路如下:(1)分析网站。(2)爬取网站。(3)将爬取的数据保存在数据库中。(4)使用SQL命令查看数据库中的数据。任务步骤第一步打开html-color-codes官网,效果如卜图所示。第二步右键“检查”,审查元素,效果如下图所示。*VLduxeJas(.uxurieuxe,<tbody>*trstyle-background-color:idianred;<td>tobsp;</td>tdCIaSSWhitenaaeIndiMRedtd<tdclasswhiteCD5C5C<td><td&nbsp;td><tr> trstyle-background-color:lightcoral;">."Ztr <trstyle三'background-color:salmon;/tr> <trstyle'backgroud-colorzdarksalmonj">-<tr> trstylebackground-color:lightsalon;'>>-<tr> trstyle-background-color:crimson;-<tr <trstyle-background-color:red;">-</tr> trstyle-background-color:fireBrick;,>>-<r <trStyIen”background-color:darkred;">_<八r><tbody><table><pxp><scriptasyncSrC="oaeead2.g8glesvndicati,on.c8Daeat¾isadsb'eooele.is</script>fduHkrntntr<urliwrzmncHrwKtrv-rrcf*w¼l小CkrfhltK<vfr第三步编写代码,爬取数据并保存在数据库中。需要使用PiPinStallPymySqI,安装Pymql模块。#!usrbinenvPython#coding=utf-8importrequestsfrombs4importBeautifulSoupimportpymysqlprint(,连接到mysql服务器.,)db=pymysql.connect(host=,localhost,user=,root,password=,password,db=,test,charset=,utf8,)print(,连接上了!,)cursor=db.cursor()cursor.execute(nDROPTABLEIFEXISTSCOLOR1')sql=,"nCREATETABLECOLOR(ColorCHAR(20)NOTNULL,ValueCHAR(IO)zStyleCHAR(50)n,tcursor.execute(sql)hdrs=lUser-Agent,:,Mozilla5.0(Xll;Fedora;Linuxx86_64)AppleWebKit/537.36(KHTML,likeGecko)'url=,http:/html-color-codes.infocolor-namesur=requests.get(urlzheaders=hdrs)soup=BeautifulSoup(r.content.decode(,gbk,ignore,),Ixml,)trs=soup.find_all(,tr,)#获取全部tr标签成为一个列表fortrintrs:#遍历列表里所有的tr标签单项style=tr.get(,style,)#获取每个tr标签里的属性Styletds=tr.find_all(,td,)#将每个tr标签下的td标签获取为列表td=xforxintds)#获取的列表name=td1.text.strip()#直接从列表里取值hex=td2.text.strip()# printu,颜色:,÷name+u,颜色值:,+hex+u,背景色样式:,+style#print,color:,+name+,tvalue:,+hex+,tstyle:,+styleinsert_color=("INSERTINTOCOLOR(Color,Value,Style)nnVALUES(%s,%sz%s)data_color=(name,hex,style)cursor.execute(insert_color,data_color)mit()# print,*完成此条插入!,print('爬取数据并插入mysql数据库完成.,)第四步运行代码,效果如下图所示。白*Python3.8.2Shell*FileEditShellDebugOptionsWindowHelpbit(Inorh)eytelyp>成成成成成成成成成成成成成成成成成成成成成完完完完完完完完完完元完完完元完完三库库库库库库库库库库库库库库库库库库库库B据据据据据据据据据glg需据光光居居民数数数数数数数数数数数短数数数赳数数短Sl山IiiiiiiiiiiiiiiiiiiiiQQQQQQQQQQQQQQqQQQQQH-SSSSSSSSSSSSSSSSSSSSe一叫JnylylylylylylylylyInylylylylyly呻mylylyz»»4."JJ»»J.-J»J.»1.J.»J»4."J-J»-J.-413.»4»»J-»J.»4»J-»>Au4uAdM4uJdR404M4dM4u404U404dM4u4dM4uAuWnp404d-!并并并并并并并并并并并并并并并并并并并并K一了据据据据据据据据据据据据据据据据据据据据堀一一到上效数数数数数数数数数数题数数数数数数数数却一一接接取取取取取取取取取取取取取取取取取取取取即一一连连爬爬爬爬爬爬爬爬爬爬爬爬爬爬爬爬爬爬爬爬砸第五步查询创建工具萱道燃箱器1select*fromCOLOR;信息结果1概况状态ColorValueStyleIndianRedCD5C5Cbackground-color:indianiLightCoraIF08080background-colorlightccSalmonFA8072background-colosalmoDarkSaImon9967Abackground-color:CIarkSeLightSaImonFFA07Abackground-color:IightSaCrimsonDCI43Cbackground-colorxrimscRedFFOOOObackgroundcolorred;FireBrickB22222background-colofireBriDarkRed8B0(XX)background-colodarkrePinkFFCOCBbackground-colorpinlLightPinkFFB6C1background-colorlightpiHotPinkFF69B4background-colohotpinDeepPinkFF1493background-CoIOrdeeppMediumVioIetRedC71585background-colomediu

    注意事项

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

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




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开