Python网络爬虫实习报告.doc
《Python网络爬虫实习报告.doc》由会员分享,可在线阅读,更多相关《Python网络爬虫实习报告.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#+ Python 网络爬虫实习报告 #+ 目录目录 一、选题背景一、选题背景.- 2 - 二、爬虫原理二、爬虫原理.- 2 - 三、爬虫历史和分类三、爬虫历史和分类.- 2 - 四、常用爬虫框架比较四、常用爬虫框架比较.- 5 - 五、数据爬取实战(五、数据爬取实战(豆瓣网爬取电影数据豆瓣网爬取电影数据) .- 6 - 1 分析网页 .- 6 - 2 爬取数据 .- 7 - 3 数据整理、转换 .- 10 - 4 数据保存、展示 .- 12 - 5 技术难点关键点 .- 12 - 六、总结六、总结.- 14 - #+ 一、一、选题背景选题背景 二、二、爬虫原理爬虫原理 三、三、爬虫历史和分类
2、爬虫历史和分类 四、四、常用爬虫框架比较常用爬虫框架比较 ScrapyScrapy 框架框架: :Scrapy 框架是一套比较成熟的 Python 爬虫框架,是使 用 Python 开发的快速、高层次的信息爬取框架,可以高效的爬取 web 页面并提取出结构化数据。Scrapy 应用范围很广,爬虫开发、数 据挖掘、数据监测、自动化测试等。 CrawleyCrawley 框架框架: :Crawley 也是 Python 开发出的爬虫框架,该框架致力 于改变人们从互联网中提取数据的方式。 PortiaPortia 框架框架: :Portia 框架是一款允许没有任何编程基础的用户可视化 地爬取网页的爬
3、虫框架。 newspapernewspaper 框架框架: :newspaper 框架是一个用来提取新闻、文章以及内容 分析的 Python 爬虫框架。 Python-goosePython-goose 框架:框架:Python-goose 框架可提取的信息包括:文章 主体内容;文章主要图片;文章中嵌入的任 heYoutube/Vimeo 视 频;元描述;元标签 #+ 五、五、数据爬取实战(豆瓣网爬取电影数据)数据爬取实战(豆瓣网爬取电影数据) 1 分析网页分析网页 # # 获取获取 htmlhtml 源代码源代码 defdef _getHtml():_getHtml(): datadata
4、= = pageNumpageNum = = 1 1 pageSizepageSize = = 0 0 try:try: whilewhile (pageSize(pageSize = 125):125): # # headersheaders = = User-Agent:Mozilla/5.0User-Agent:Mozilla/5.0 (Windows(Windows NTNT 6.1)6.1) AppleWebKit/537.11AppleWebKit/537.11 (KHTML,(KHTML, likelike Gecko)Gecko) Chrome/23.0.1271.64Chro
5、me/23.0.1271.64 Safari/537.11,Safari/537.11, # # Referer:NoneReferer:None # #注意如果依然不能抓取的话,这里注意如果依然不能抓取的话,这里 可以设置抓取网站的可以设置抓取网站的 hosthost # # # # openeropener = = urllib.request.build_opener()urllib.request.build_opener() # # opener.addheadersopener.addheaders = = headersheaders urlurl = = + + str(pag
6、eSize)str(pageSize) + + &filter=&filter= + + str(pageNum)str(pageNum) # # datahtml%sdatahtml%s % % i i =urllib.request.urlopen(url).read().decode(utf-8)=urllib.request.urlopen(url).read().decode(utf-8) #+ data.append(urllib.request.urlopen(url).read().decode(utf-data.append(urllib.request.urlopen(ur
7、l).read().decode(utf- 8)8) pageSizepageSize +=+= 2525 pageNumpageNum +=+= 1 1 print(pageSize,print(pageSize, pageNum)pageNum) exceptexcept ExceptionException asas e:e: raiseraise e e returnreturn datadata 2 爬取数据爬取数据 defdef _getData(html):_getData(html): titletitle = = # # 电影标题电影标题 #rating_num#rating
8、_num = = # # 评分评分 range_numrange_num = = # # 排名排名 #rating_people_num#rating_people_num = = # # 评价人数评价人数 movie_authormovie_author = = # # 导演导演 datadata = = # # bs4bs4 解析解析 htmlhtml soupsoup = = BeautifulSoup(html,BeautifulSoup(html, html.parser)html.parser) forfor lili inin soup.find(ol,soup.find(ol,
9、 attrs=class:attrs=class: grid_view).find_all(li):grid_view).find_all(li): #+ title.append(li.find(span,title.append(li.find(span, class_=title).text)class_=title).text) #rating_num.append(li.find(div,#rating_num.append(li.find(div, class_=star).find(span,class_=star).find(span, class_=rating_num).t
10、ext)class_=rating_num).text) range_num.append(li.find(div,range_num.append(li.find(div, class_=pic).find(em).text)class_=pic).find(em).text) #spans#spans = = li.find(div,li.find(div, class_=star).find_all(span)class_=star).find_all(span) #for#for x x inin range(len(spans):range(len(spans): # # ifif
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- python 网络 爬虫 实习 报告 讲演 呈文
限制150内