《Python获取网页指定内容bs4模块.docx》由会员分享,可在线阅读,更多相关《Python获取网页指定内容bs4模块.docx(5页珍藏版)》请在优知文库上搜索。
1、Python获取网页指定内容bs4模块Pymon用仪数据处理还是加节不堵的,如果你想娶做相虫,Py1.hOn是很好的选择.它有很学已经?好的炎包,只要调用,即可完成跟多发杂的功能在我们开始之前我们需要安装些环境依核包.打开命令行丽保电胸中具方PyIhOn和pip,如果没有的话则许要门行进行安装之场我们可使用pip安装必备模块requestspipinsta1.1.requestsrequestsPyIhOn实现的简顼易用的HTTP昨.使用起来比ur1.1.ib徜油很多.requests允许你发送HTTP.1.1请求.指定UR1.并添加爽询Ur1.字符上即可开始叱取因灾信息1.抓取网页源代码以该
2、平行为例.抓取脚页中的公司名称数据,网页链接:https:/WWW.crrcgo.CCJadmirVcrr_supp1.ier.h1.m1.?Page-I目标网页源代码如下t首先明碉步骤1 .打开目标站点2 .抓取I1.除站点代码并输出Iwportrequests导入我们需要的requests功能模块pEcrcquost5.gc*t(https.crrcgo.ccZdnincrr_5upp1.icr.htn1.?pagc-1.)这句命令的感思就是使用get方式获取该神页的数据,实际上我做生取到的就是浏览器打开h度M址时候行页iai面的数据信息rint(pdge.text)这句是把我们援取数据的
3、文字text内容饰出刖的出来i11portrequestspage=requests.get(,htt(srw.crrcgo.cc3(M)incrr-su1.ier.tr1.pge=1.)print(page.text)成功爬取到了U标网页源代利2.抓取一个网页源代码中的某!示签内容做足上面抓取到的代阳充满尖括号的片字符,对我们没行什么作川,这怦的充满尖拈号的数抠就是我们从IK务器收到的网页文件,就像Office的doc.PPtx文件格式一样,网页文件般是htm1.格式.我们的浏览器可以把这些htm1.代码数据展示成我们看到的网页.我们如果需要这些字符里二而提取有价值的数犯,就必为先了解标记元
4、素每个标记的文字内容都是夹在两个尖括号中间的.结尾尖括号用/开头,尖括号内(imgfudw)我示标记兀素的类型(图片或文字,尖括号内可以有其他的属性(比如src开始标记A标记属性标记内容结尾标记(*t*jhdivid=,biaoti1.dass=daz”十分钟上手数据鹿虫I,V,Y)Iid属性CIaSS属性CSDN创*r1Sday标记名标记内容文字才是我们需要的数据但我们要利用id或c1.assm件才能从众多标记中找到需要的标记元素.我们可以在电脑浏览器中打开任意网页.按下(12谯即可打开元素杳青器(E1.ementS),就可以看到组成这个页面的成百上千个各种各样的标记元素标尼元点是可以一层一
5、层嵌套的,比如下而就是body嵌套了div元建,body是父层、I:层元素;dv足子层、下层元素.,MIFvi?1.,.回到抓取上面求.现在我只想在网页中版取公司8这个数据.其也的我不忍爱查看网页htm1.代码.发现公司名在标口de1.ai1._head里面divC1.aSS1.detaiIJeadBP理工全字机械电器股份有限公司=叼anInportrequestsreq三requests.get(,httpszw.crrc.ccadnincrr-supp1.ier.htm1.page=1.)这两行上面解杼过了,足获取页面数据fronbs4InportQeautifu1.Soup我们需娶使用B
6、eautifuISoup这个功能模块来把充满尖括号的htm1.数据变为更好用的侪式,frombs4importBoaUtikJISOUP这个是说从bs4这个功能忸块中导入BGautrfuISoup见的,囚为bs4中包含了多个模块BeaUMUISOUP只是其中个req.encoding*utf-8指定法取的网页内弃用utf8湍码soup-Beautiu1.Soup(t111.text,htn1.parser,)这句代码用htm1.解析器(ParSer)来分析我们requests得到的htm1.文字内容.soup就是我们解析出来的结果,c11pn11y-ite115cp.find-1.1.(*di
7、vFc1.a5s_-edrtai1._hoadM)find是查找,ind_afSf找全部查找标记名是div井Hc1.ass属性是deta1.head的全部元素dd=cStrip()方法用于移除字符*头星指定的字符默认为空格或换行符)或字符序列,在这里.就胫移除多余的尖括号的htm1.最后拼接之后代码如下IInportrequestsfronbs4InportBeautifu1.Soupreqrequests.et(ur1.-,httpsjwMM.crrcRo.ccad11incrr-supp1.ier.htmPpae-,)req.encoding三-Utf-8”htn1.=req.textso
8、up-8cutifu1.Soup(req.text,featarcsht1.prsor,)conpanyten-soup.find(divm,c1.ass.-,detai1.head,*)dd=cprint(dd)最后执行站果成功的抓取到了网页中我们想要的公司信息(H足却只抓取到了个公司.其余的则井未抓取到所以我们常要加入个循环,抓取网页中所有公司名,并没多大改变forcxp11y-itc11inccpny-iterts:dd-co11pany-,ite11.text.strip()print(dd)以螃代的如b:i11portrequestsfronbs4inportBeautifu1.So
9、upreq三requests.get(ur1.三*h1.tpszwMM.crrcgo.ccad11incrr-supp1.ier.htm1.?page=1.M)rcq.encoding-utf-8,ht111.rq.textsoup三Beautifu1.Soup(req.text,features三*htjn1.parser*)ConpMyJtom-SoUP.fforcxrpa11yiteincxpany-ite11s:dd三cof1.pany-1.te11.text.strip()print(dd)最终运行结果食前出了该N页中所有的公司名3.抓取多个网页子标签的内容班我现在想要抓取多个M页中
10、的公司名呢?很他单,大体代码都已经写出,我们只雷要再次加入一个循环即可农行我们需要进行抓取的网页,发现当神页变化时,就只有Page后面的数字会发生变化.当热很多大的厂商的网页,例如京东、泡定它旬的网页变化时常让人摸不着头脑,粮雎猜测.crrcgo.cc/.idmin/crr_supp1.ier.htm1.?page-2j翻译0上网登录页工具资料文案学习在缢B场娱乐亘实渗透中军为!登录客区电话:400-099-6220片照口好供的产品得务推科应琏电商处同平台CSDNJi、/edOOday8crrcgo.cc/ddtnin/c(r_$upp1.ier.htni1.?pdge:3i0上网登录页工资料
11、文案学习在维场娱乐真实:,登录客安电话:400-099-6220E购呈电商协同平台供庖商产品/服务推荐榜CSDN(三)Iiver100day1.nur1.=,https:/kwx.crrcgo.cc/adr1.n/crr-supp1.ier.hts4IfiportBedutHu1.Soupinur1.-httpsrkx.crrcgo.ccad11incrr_5upp1.icr.ht!111.fornuminra11e(i,6):print(三=三=三三三三三=三三三三三=正在家第”Vr(nue).W三=三三三三-outUr1.sinur1.tstr(num)roq-requests.got(ur1.-outur1.)req.encoding-utf8htn1.=req.textsoup=Beautifu1.Soup(req.text,features=Hhtm1.parser)copa11y-itcms-soup.find-a1.1.(div,c1.55-dctai1.-hcd)forco11panyeite11inco11panyite11s:Od三company-itn.text.str1.p()print(dd)成功的抓取到了15页所有的公司名(子标签)内容