Pyth o n网络爬虫实习报告
目录
一、选题背景. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误!未定义书签
二、爬虫原理?错误!未定义书签。
三、爬虫历史与分类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误!未定义书签
四、常用爬虫框架比较?错误!未定义书签。
五、数据爬取实战豆瓣网爬取电影数据 . . . . . . . . . .错误!未定义书签
1分析网页?错误!未定义书签。
2爬取数据. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误!未定义书签
3数据整理、转换?错误!未定义书签。
4数据保存、展示?错误!未定义书签。
5技术难点关键点?错误!未定义书签。
六、总结. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .错误!未定义书签
选题背景
二、 爬虫原理
三、 爬虫历史与分类
四、 常用爬虫框架比较
Scrap y框架 Sera py框架就是一套比较成熟得Pytho n爬虫框架 就是使用Python开发得快速、高层次得信息爬取框架可以高效得爬取web页面并提取出结构化数据。 S erap y应用范围很广爬虫开发、 数据挖掘、数据监测、 自动化测试等.
Crawle y框架 C r a wley也就是Pytho n开发出得爬虫框架该框架致力于改变人们从互联网中提取数据得方式。
Portia框架 P orti a框架就是一款允许没有任何编程基础得用户可视化地爬取网页得爬虫框架。newspa p e r框架 nc wspape r框架就是一个用来提取新闻、文章以及内容分析得Pyth o n爬虫框架.
Py t ho n-go o se框架 Pyth o n-go o se框架可提取得信息包括 〈1文章主体内容;2文章主要图片 3文章中嵌入得任h eYo utube/Vi meo视频 4〉元描述 〈5〉元标签
五、数据爬取实战豆瓣网爬取电影数据
1分析网页
#获取ht m l源代码
try: ?wh i le(p ageSiz e 〈=125):
#headers= {'U ser—Ag en t' : 'Mozi
1 l a/5、 0(Windows NT 6、 1)Ap p 1 eWeb Ki t/537、 1 1 (KHTML, l ike Gecko)Ch rome/23、 0、 1271、 64 Safari/537>11',
# 'Refe r er':None #注意如果依然不能抓取得话,这里可以设置抓取网站得h ost
#}? #o pener=url l ib、 req ue st、 bui ld_opener()
#opener、 addhea der s= [header s]?ur l="”+st r(pag e Siz e)+ ”&f i lt e r(p ageNum)
#data['h t ml%s%i ]=url 1i b、 re q uest、ur 1 open(ur 1)、 read()、 decode("utf—8")?dat a、 append(url 1 i b、 requ e st、 urlopen(ur 1 )、 read()、d ecode(”ut f—8H))page S i z e+= 25? p age N
um+=1 ?pr int(pageSize,pageNum)excep t E x cepti o n a s e:r ai se eretu r n data
2爬取数据def__getData(html):title= #电影标题 #rati ng_n um=[]#评分? range_num二 口#排名? #rat ing—people_num=[ ] #评价人数movie_author=[] #导演? da t a={}
#b s4解析h t ml?s oup=Beauti f u l Sou p(html,”html、 parser”)?for l i i n sou p、 find(”o I”,a tt rs= {'clas s': 'grid_view'} )、 fin d—al l( "l i"):t it le、 append( l i 、 f i nd("span",cl a ss—二”title”)、 t ext)
#rating_num、 append(l i 、 fin d("d i v” class_='star') 、find(”span",class_='rat ing_nu m')、 t ext)ra n ge—num、 ap pend(l i、 fi n d("di v”,class—='pi c')ffind("emH)、 text )? #spans=l i、 find("d iv” c l as s—='star )' 、 find_a l l (Hsp an") ? #fo rxin ran ge(le n(spans)):
#i fx<=2:? # pass?#e 1 se
# rat ing_peo ple_num、 append(spans[x]、 stri ng[—1e n( s pans[x]、 st rin g):—3])str=l i、 fi n d(”div",cla ss_='b d')、 find(”p",clas s—='')、 text、 lstrip()?in d ex=st r、 find("主")?if(ind ex==—1 ):index=str 、 fin d("、 、 、 ")?prin t (l i 、 fin d(”d i v” c las s_='p i c' ) 、 find(”em")、 t e xt)if(l i 、 find("div”,cl a s s_='pic')、 find(”em”)、 text==210):i n d ex= 60
# p rint("aaa”) #p rint (str[4:i ndex])? movie_author、 append(str[4: i nde x])d a t a['t i tl e'] =titl e
#data['rat ing_num'] =rat i ng_numdat a[/ rang e—nu m]=ra nge_nun?#data[ 'rating_p eo pl e_n um']=r at i n_peopl e_numdata['mov ie_au t ho r']=movie_a u th o rret u rn dat a
3数据整理、转换def—_getMov i e s(da t a):f=ope n('F: 〃 douba n_movi e、 html ', 'w' , e ncodi ng='u tf—8')f 、w rite(" 〈html>”)f、wr i te(”<h e ad><me t a charset二'UTF-8'> 〈title>In sert titlehere</ t it 1 ex/he ad>”) f、wr i te(” 〈b o d y>”)?f、write(” 〈h 1>爬取豆瓣电影v/hl>")f、wri te(”<h4>作者刘文斌〈/h 4>”)f、wr i te(” 〈 h4>时间 "+no wt i me+”v/h 4>”)?f、wri te("<hr>”)f 、w r i te("<t able width='8 OOpx' border二'1 'a 1ign二center>")f 、wr i te(" 〈th e ad>”) f、wr ite("<t r>")?f、write(”<t h><fontsi z e='5'c olor=g reen〉电影</fo nt></th〉 ”)?#f、wr ite(Hvt hwidt h=50pxz><fo nt s i z e='5'c o lor=g r ee n>评分v/font〉 〈/th>")f、wri t e(" 〈th w i d th='50 px'> 〈 f o nt size='5/c ol o r=green>排
名〈/fo nt〉 〈/th>”) #f、wr ite("
〈thwidth='100px'〉 〈 fontsize='5'color=green〉评价人数v/font></t
h>")?f、write(" 〈th> 〈font siz e='5/color=gr e en>导演〈/font〉 v/th>”)f、wr it e(”</tr>")f 、w r i te("</th e ad〉 ”)f>wr ite("<tbod y>”)fordataindatas :?for i inrange(0,
25) :? f、write(” <t r〉 ”)f 、write( "<td styl e='c olor:ora n ge; t ext—al ign:cen t er'
>%s</td〉 ”%d ata ['ti t le'][i] )? #f、wr ite(” <td s ty le='colo r:bl ue te xt—a 1 ign :c e nte 「 〉 sv/t d>" %data[/ r at i n g_num'] [i ] )?f、write("<td sty1e='co lor: red; text—al ign cent er'〉 s</td〉 ”%data['r ange_num] [i])
#f 、 wr i te("vtd style='co 1 or:bl ue;text-al ig n:cen te r'>%s〈/td>”%d a ta[ 'r ating_p e ople_nu m'] [i :)f、write(” 〈 td st y le='col o r:b l ac k;t ext—a l ign:center '〉 s</td>"%d ata[ 'mo vi e—aut h or'] [i ])f 、write(" 〈/tr>") ?f 、wri t e(” 〈/tbody>")
f、write("v/ thead>")?f wri te(”</ table>H)f 、wri t e(”</bo d y>")? f、write( " 〈/h t ml〉 ”)f 、 close()i f__n ame__== _ma i n _:
data s=h tmls=__getH tml ()? for i i n rang e( len(htmls) ) :?dat a=__getData(ht m ls[ i ])?datas、 app end(data)
? —_g e tMovies(datas)
4数据保存、展示
结果如后图所示
SugarHosts 糖果主机商我们算是比较熟悉的,早年学会建站的时候开始就用的糖果虚拟主机,目前他们家还算是为数不多提供虚拟主机的商家,有提供香港、美国、德国等虚拟主机机房。香港机房CN2速度比较快,美国机房有提供优化线路和普通线路适合外贸业务。德国欧洲机房适合欧洲业务的虚拟主机。糖果主机商一般是不会发布黑五活动的,他们在圣圣诞节促销活动是有的,我们看到糖果主机商发布的圣诞节促销虚拟主机低至6折...
官方网站:点击访问白丝云官网活动方案:一、KVM虚拟化套餐A1核心 512MB内存 10G SSD硬盘 800G流量 2560Mbps带宽159.99一年 26一月套餐B1核心 512MB内存 10G SSD硬盘 2000G流量 2560Mbps带宽299.99一年 52一月套餐...
zoecloud怎么样?zoecloud是一家国人商家,5月成立,暂时主要提供香港BGP KVM VPS,线路为AS41378,并有首发永久8折优惠:HKBGP20OFF。目前,解锁香港区 Netflix、Youtube Premium ,但不保证一直解锁,谢绝以不是原生 IP 理由退款。不保证中国大陆连接速度,建议移动中转使用,配合广州移动食用效果更佳。点击进入:zoecloud官方网站地址zo...