电子信息工程-基于python的网络爬虫设计

上传人:知进****失 文档编号:233167855 上传时间:2022-01-01 格式:DOC 页数:44 大小:4.14MB
返回 下载 相关 举报
电子信息工程-基于python的网络爬虫设计_第1页
第1页 / 共44页
电子信息工程-基于python的网络爬虫设计_第2页
第2页 / 共44页
电子信息工程-基于python的网络爬虫设计_第3页
第3页 / 共44页
电子信息工程-基于python的网络爬虫设计_第4页
第4页 / 共44页
电子信息工程-基于python的网络爬虫设计_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《电子信息工程-基于python的网络爬虫设计》由会员分享,可在线阅读,更多相关《电子信息工程-基于python的网络爬虫设计(44页珍藏版)》请在金锄头文库上搜索。

1、1内容摘要内容摘要哔哩哔哩视频弹幕网,从一开始的无名小站发展到现在月活跃用户超一亿的巨大规模,不仅引起了行业浪潮,也吸引越来越多人选择成为UP主(Uploader)即视频上传者。Bilibili网为UP主提供了平台和各种功能支持,但还是无法面面俱到。本软件设计旨在提供便捷的刚需功能,为新兴UP主提供功能支持。本毕业设计采用标准的软件开发流程,包含了需求分析、整体设计、模块实现、编码、测试、打包软件等等步骤。该软件算法和轮廓基于python设计,调用了包含requests、random、pickle等等成熟的集成库环境。软件主要针对用户需求颇多的两个主要分支:评论和抽奖进行设计实现。评论区功能包

2、括爬取完整的表单数据,解决复数层评论的获取和存储,实现快速浏览、存储和多种查找功能;抽奖区功能包括实现爬取多种抽奖材料,根据需求分析样本并最终使用随机算法进行随机数获取,实现抽奖功能。关键词:关键词:爬虫 bilibili 用户 pythonAbstractBilibili has started as an unfamous acg web at the beginning and now have a huge scale of over 100 million active users each mouth, which is causing a wave and attracted m

3、ore and more people to choose to become a UPloader.Bilibili provides Uploaders sport and various functions for the users, but it still cannot cover everything. This software is designed to provide convenient and needed functions to users. This graduation design uses a standard software development p

4、rocess, including requirements analysis, overall design, module implementation, coding, testing, packaging and other steps. The software algorithm and outline are designed based on python, and call the mature integrated library environment including requests, random, pickle and so on. The software i

5、s mainly designed and implemented to slove two main functions with many user needs: reviews and lotteries.The review function incuding crawling complete form datas, solving the acquisition and storage of multiple layers of reviews, realizing quick browsing, storage and multiple search functions and

6、so on. The lottery function contains crawling multiple datas to analysis and finally finish the 2random choise.Key words:Web Crawler Bilibili User Python目目 录录1 1 绪论绪论.11.11.1 项目背项目背景景与意义与意义.11.21.2 国内外研究情况国内外研究情况.11.31.3 文献综述文献综述.12 2 网络爬虫介绍网络爬虫介绍.32.12.1 网络爬虫原理网络爬虫原理.32.22.2 网络爬虫框架网络爬虫框架.32.32.3 网络

7、爬虫工作流程网络爬虫工作流程.32.3.1 向服务器发起请求.32.3.2 获取响应内容.42.3.3 解析内容.42.3.4 储存分析.43 3 软件整体设计软件整体设计.53.13.1 程序需求分析程序需求分析.53.23.2 系统框架构造系统框架构造.54 4 爬虫程序具体设计流程爬虫程序具体设计流程.124.14.1 环境搭载环境搭载.124.24.2 模块功能实现模块功能实现.154.2.1 实现评论获取与查找.154.2.2 实现BV号获取及视频信息总览.214.2.3 抽奖实现与粉丝流动部分.224.2.4 MID的获取和AB互转功能实现.254.2.5 程序框架实现.274.2

8、.6 逻辑改善及BUG处理.294.2.7 编写完成打包程序.325 5 软件演示与测试软件演示与测试.345.15.1 测试环境测试环境.345.25.2 步骤演示与测试结果步骤演示与测试结果.3436 6 总结总结.426.16.1 项目开发总结项目开发总结.426.26.2 不足与不足与展展望望.42参考文献参考文献.43致谢致谢.441 1 绪论绪论1.11.1 项目背景与意义项目背景与意义近年来随着网络的飞速发展和建设,人们获取信息的途径也从主流的报纸电视,过渡到手机电脑等网络平台。各类别的文化借此逐渐渗透到人们周围的生活中。作为国内起步最早的一批二次元视频网站之一,哔哩哔哩以其独有

9、的弹幕文化逐步发展成现在国内流量第一的视频弹幕网站。哔哩哔哩视频内容的高跨度、高质量、高时效力也为其吸引了巨大的现有用户和潜在用户,2019年5月起月活跃用户数突破1亿,并且还在呈现增长趋势。作为一个互联网公司,哔哩哔哩是成功的。但其拥有的庞大用户数量,注定决定了哔哩哔哩无法做到面面俱到,满足所有用户的需求。哔哩哔哩主要的运作方式为网页,依赖数据的建设和支持为用户提供了很棒的功能。 本课题的主要目的是设计面向用户的网络爬虫程序,提供用户一些官方并未提供的功能,比如类别抽奖和数据获取。1.21.2 国内外研究情况国内外研究情况近年来,国内外程序研究人员提出了许多种类的网络爬虫结构与算法,亦应用在

10、不同的行业与领域,大大提高信息利用率和工作效率。许多大型软件公司也积极地根据自身行业特点与需求,开发出许多类别的网络爬虫系统,比如google,微软的bingbot和yahoo的slirp等等。本课题研究的方向是提供特定网站哔哩哔哩的额外功能实现,在经过网络查询后发现,国内目前并未有人系统地开发过相应软件,可以说是较为新颖的研究课题。并且考虑到哔哩哔哩用户基数大,前景可期,用户需求只会越来越多,本课题的研究实现也具有了现实意义。具备研究价值。在实现预期目标的同时,将一同研究作为功能性的爬虫程序,在面对复杂、多样性的环境下可能出现的问题,合理借鉴前人研究经验,解决和优化。41.31.3 文献综述

11、文献综述对于网络爬虫的研究从上世纪九十年代就已经开始,目前爬虫技术已经趋见成熟,功能描述向高概括性高度模块化靠拢。网络爬虫是搜索引擎的重要组成部分。网络上比较著名的开源爬虫有Nutch,Larbin,Heritrix等等。网络爬虫最重要的是网页搜索策略(广度优先和最佳度优先)和网页分析策略(基于网络拓扑的分析算法和基于网页内容的网页分析算法)。国内外流行的爬虫技术相当多,各个编程语言都有涉及。基于Python、C+、C、java等等。就原理而言,爬虫组件都是差不多的。而无头浏览器是最能够说明爬虫特性的部分,无需提供多余的身份信息即可向服务器请求数据,以适用于自动化测试等领域。此外主流的浏览器如

12、Chrome、Firefox、Safari等都提供了相应的抓取支持,selenium作为一个集成工具,包含了上述的所有组件,以WebDriver的形式,直接在浏览器进行测试,适配各种爬虫组件,方便使用者进行操作。2 2 网络爬虫介绍网络爬虫介绍2.12.1 网络爬虫原理网络爬虫原理网络爬虫行为上就是模拟真人进行流程操作,获取网页返回的数据进行储存分析,等同于浏览器对网页的访问。因这种技术实现很像蜘蛛在蛛网上的往返爬行,也被生动地取名为爬虫。其实质就是一个请求网站并储存数据的自动化程序。2.22.2 网络爬虫框架网络爬虫框架下图为一个通用的网络爬虫框架。通过调用URL在队列中进行管理,实现数据获

13、取和保存。5已下载网页库种子URL待抓取URL已抓取URL读取解析下载放进队列图2.1网络爬虫框架图2.32.3 网络爬虫工作流程网络爬虫工作流程2.3.1 向服务器发起请求爬虫程序通过request向目标网站的服务器发起请求,服务器会根据request内包含的请求作出处理,返回浏览器结果,这个过程即为response。而Request包含:1、请求方式常用的有GET和POST两种请求类型,另外还有HEAD、PUT、OPTIONS等。2、请求URLURL即(Uniform Resource Locator)统一资源定位符,网页、歌曲、视频、图片都可以用一个唯一URL确定定位。3、请求头发送请求

14、时可选的头部信息,取决于网页的请求要求,常见有Cookies、Host等。4、请求体发送请求时可选的额外数据,比如提交的表单、文本数据。62.3.2 获取响应内容服务器返回的response包含:1、响应状态即状态码,比如200为处理成功,404为未找到请求页面。2、响应头包含返回的内容格式、长度、类型等自然信息,以及服务器信息等。3、响应体即请求的资源内容,爬虫获取最主要的部分。2.3.3 解析内容根据获取的数据类型,比如HTML文档,JSON格式文本,图片,歌曲视频等等,作出相应处理。处理方式有直接处理,正则表达式,json解析,beautifulsoUP等等。2.3.4 储存分析以不同的

15、格式:文本、json、jpg、mp3等等储存数据,作进一步处理分析。3 3 软件整体设计软件整体设计3.13.1 程序需求分析程序需求分析哔哩哔哩网站作为新类别媒体平台的代表,在近几年以其内容的高跨度、高质量、高影响力吸引了巨大的现有用户和潜在用户,2019年5月起月活跃用户数突破1亿,并且还在呈现增长趋势。UP主,一个哔哩哔哩网站视频创作者的别称,为哔哩哔哩海量视频的产出增添了浓墨重彩的一笔。从起初的小受众网站一步步走向了多元化的媒体平台,这也吸引了越来越多的人成为UP主,加入到创作的浪潮中。本软件面向的对象,就是数量众多的中小规模的新UP主。许多UP主在不断产出高质量视频后,也未必能成为粉

16、丝过万、十万、百万的大UP主。抛去主观因素,通过网上调查等方式,我总结出了他们需要的一些非官方提供功能。一个全面的视频信息汇总功能,让用户看到全部视频的具体数据。一个高效的评论浏览功能,可以使他们了解观众的想法和建议,为新的内容创作蓄力。一个多样化的评论查找功能,有时需要找到特定信息,比如歌名,网站等等,或者查看长度较长的评论,查找功能就能很好地解决问题。这个功能也不局限于UP主,是所有用户都能使用的功能。7一个完善的抽奖功能。哔哩哔哩为UP主提供了许多方便的功能,抽奖就是其中之一。但为了防止滥用引发的一系列问题,该功能只提供给粉丝过万或者有一定优质动态、投稿积累的UP主,新人UP主要想在前期积累人气,抽奖功能是必不可少的。一个粉丝流动监视功能。新人UP主最关注的应该就是粉丝增长趋势了。这个功能无疑十分便捷,可以让他们看到一步步的积累。3.23.2 系统框架构造系统框架构造有了需求后,就可以着手设计软件,即面向对象编程。先根据用户需求,总结出需求框架,方便后续工作流程。下图为具体框架:图3.1需求总结图由需求可对程序进行初步构造,设计成由一个初始界面框内嵌一个多层循环且可随时打破的菜单

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 大学论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号