《Python网络爬虫实习报告》由会员分享,可在线阅读,更多相关《Python网络爬虫实习报告(15页珍藏版)》请在金锄头文库上搜索。
1、Python网络爬虫实习报告目录一、选题背景-2-二、爬虫原理-2-三、爬虫历史和分类-2-四、常用爬虫框架比较-2-五、数据爬取实战(豆瓣网爬取电影数据)-3 -1分析网页3-2爬取数据3-3数据整理、转换-4-4数据保存、展示-9 -5技术难点关键点-10-六、总结-13-选题背景二、爬虫原理三、爬虫历史和分类四、常用爬虫框架比较Scrapy框架:Scrapy框架是一套比较成熟的Python爬虫框架,是使用Python开发的快速、高层次的信息爬取框架,可以高效的爬取web页面并提 取出结构化数据。Scrapy应用范围很广,爬虫开发、数据挖掘、数据监测、 自动化测试等。Crawley框架:C
2、rawley也是Python开发出的爬虫框架,该框架致力于 改变人们从互联网中提取数据的方式。Portia框架:Portia框架是一款允许没有任何编程基础的用户可视化地爬取网 页的爬虫框架。newspaper框架:newspaper框架是一个用来提取新闻、文章以及内容 分析 的Python爬虫框架。Python-goose框架:Python-goose框架可提取的信息包括:1文章 主体 内容;2文章主要图片;3文章中嵌入的任heYoutube/Vimeo视 频; 4元描述;5元标签五、数据爬取实战(豆瓣网爬取电影数据)1分析网页#获取html源代码def _getHtml():data =pa
3、geNum = 1pageSize = 0try:while (pageSize = 125):# headers = (User-Age nt:Mozilla/5.0 (Win dowsNT6.1) AppleWebKit/537.11 (KHTML, like Gecko)Chrome/23.0.1271.64 Safari/537.11,# Referer:No ne #注意如果依然不能抓取的话,这里可以设置抓取网站的host# ope ner = urllib.request.build_ope ner()# ope ner.addheaders = headersurl = http
4、s:/ + str(pageSize) + & filter= + str(pageNum)# datahtml%s %i =urllib.request.urlope n( url).read().decode(utf-8)data.appe nd(urllib.request.urlope n( url).read().decode(utf-8)pageSize += 25pageNum += 1prin t(pageSize, pageNum)except Excepti on as e:raise ereturn data2爬取数据def _getData(html):title =
5、#电影标题#rati ng_num = # 评分range_num = # 排名#rati ng_people_ num = # 评价人数movie_author = # 导演data = (# bs4 解析 htmlsoup = BeautifulSoup(html, html.parser)for li in soup.find(ol5 attrs 二(class: grid_view).fi nd_all(li):title.appe nd(li.fi nd(spa n, class_=title).text)#rati ng_nu m.appe nd(li.fi nd(div,clas
6、s_=star).fi nd(spa n, class_=rat ing_nu m).text)range_nu m.appe nd(li.fi nd(div,class_=pic).fi nd(em).text)#spa ns = li.fi nd(div,class_=star).fi nd_all(spa n)#for x in ran ge(le n( spa ns):# if x )f.write( In sert titlehere)fwrite()f.write(爬取豆瓣电影 v/h1)f.write( 作者:刘文斌 v/h4)f.write( 时间:” + owtime + v
7、/h4)f.write(vhr)f.write()f.write(vthead)fwrite()f.write(电景,v/fon t)#f.write(评分 v/fon t)f.write( 排名 )#f.write(评价人数 )f.write(导)寅)f.write()f.write()f.write()for data in datas:for i in ran ge(0, 25):f.write()f.write(%s % datatitlei)# f.write(vtd style=color:blue;text-align:center%s % datarati ng_nu mi)f
8、.write(%s % datara nge_nu mi)# f.write(vtd style=color:blue;text-align:center%s % datarati ng_people _nu mi)fwrite(vtdstyle 二color:black;text-align:center%s % datamovie_authori)f.write(v/tr)f.write()f.write()f.write()f.write()f.write()fclose()if name = main:datas =htmls = _getHtml()for i in ran ge(l
9、e n(htmls): data = _getData(htmlsi) datas.appe nd(data)_getMovies(datas)4数据保存、展示结果如后图所示:电影=- 排导演1弗兰克-德拉邦特Frank Darabont2陈凯歌Kaine Chen3吕克-贝楼Luc Besson14Robert Zemeckis15罗伯托贝尼尼 Roberto Bemuni召宫崎骏 Hayao Miyazaki7史蒂文斯皮尔怕格Steven Spielberg借姆斯卡梅隆 James Cameron9克里斯托弗诺兰Christopher Nc Ian10安德鲁斯坦顿 Andrew Staii
10、tcn11末塞佩托纳多雷 Giuseppe Tomato人I 12拉库马希拉尼Rajkuniar HiratiiIB莱塞霍焉R斯道姆 Lasse Hallstrom克里斯托夫巴拉带Christophe BairratierI 15刘镇伟Jef&ey Lau弗朗西斯福特-科披检Francis Ford Coppola宫崎骏 Hayao MiyazakiI 18彼得威尔 Pder Weir19维克多弗莱明Victor Fleming养治库克Gearce Cukor20苗东赫 Dcmg-hyuik Hwang触不可及21是刹维那卡什Olivier Nakache艾力克托兰达Erie Toledano天堂电影院22朱塞佩托纳多雷