ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:361.08KB ,
资源ID:362005      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-362005.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(毕业论文-基于Python的网络爬虫设计.docx)为本站会员(wj)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

毕业论文-基于Python的网络爬虫设计.docx

1、基于 Python 的网络爬虫摘要随着计算机技术的不断发展,新的编程语言层出不穷,Python,Html 正是其中的佼佼者。相比较早期普及的高级语言(Java,C 语言)等,Python 有着更加实用的模块和库,虽然牺牲了底层性,但却更加方便用于开发小型项目。此外,Html 也已经被普遍用于网站前端,标记语言的特性结合 CSS 丰富了网页内容和形式,某种意义上也促进了更加人性化的电子商务系统的发展。本文的网络爬虫正式基于 Python 语言编写的,通过对 Html 抓取加工将数据可视化,以监测逐渐从线下转移到线上,并随着电子商务发展越发简单普遍难以追踪的非法野生动物贸易。本文首先对计算器语言的

2、发展,尤其是 Python 和 Html 的优势、基础概念以及性能进行介绍。最后着重介绍可以实现检测网络上非法野生动物贸易的爬虫的设计和实现。程序主要包括三个模块:URL 解析,Html 抓取,本地输出。Python 的开发环境和工具分别是 OS X 和 PyChram CE,主要调用了 Python 中的 Urllib2,beautifulsoup 模块。最终的程序可以实现对指定网站,指定关键词抓取指定内容,保存内容到本地,以便于追踪和检测。关键字:Python,HTML,爬虫,非法野生动物贸易IIPython-Based Illegal wildlife trade SpiderElect

3、ronics & Information Technology Program 11-1Haozhi Zhu SupervisorRui Zhao AbstractWith the continuous development of computer technology, the new programming language after another, Python, Html is the one of the best. Compared to the early popularity of high-level language (Java, C language), etc.,

4、 Python has a more practical modules and libraries, although at the expense of the underlying property, but it is more convenient for the development of small-scale projects. In addition, Html has also been widely used web front end, feature rich CSS markup language binding of web content and form,

5、in a sense also promoted the development of a more user-friendly e-commerce system. In this paper, based on the official web crawler written in Python, Html crawling through the data visualization process to monitor the gradual shift from offline to online, and with the development of electronic com

6、merce more simple universal untraceable illegal wildlife trade.Firstly, the development of the calculator language, especially Python and Html advantages, basic concepts and performance are introduced. The last focuses on the design and implementation can be achieved illegal wildlife trade on the re

7、ptile detection network. Program includes three modules: URL parsing, Html capture, data visualization output. Python development environment and tools are OS X and PyChram CE, mainly call in Python Urllib2, re and os module.The final program can be specified site designated keyword to crawl the spe

8、cified content, and output in PC, in order to track and detect.Key words: Python,Html,spider,Illegal wildlife trade目录IV基于 Python 的网络爬虫IPython-Based Illegal wildlife trade SpiderII 绪论11.1 毕业设计背景与目的11.2 国内外研究状况11.3 论文结构和内容1二 相关技术介绍22.1 Python 语言22.1.1 Python 语言的产生和发展历史22.1.2 Python 语言的原理32.1.3 Python

9、语言的特色32.1.4 python 语言的缺点42.2 URL42.2.1 URL 的定义42.2.2 URI 和 URL 的对比和举例42.2.3 URL 组成42.3 Html52.3.1 定义52.3.2 Html 原理52.3.3 Html 特点52.4 开发工具52.4.1 Chrome52.4.2 PycharmCE62.4.3 终端6三 项目需求及设计73.1 输入板块分析73.2 需要抓取的内容83.3 本地输出8四 项目分析及实现94.1 输入模块94.1.1 目标网站 URL94.1.2 Urillib2 模块94.1.3 伪装94.2 抓取模块94.2.1 URL 与

10、html94.2.2 Beautiful Soup 库94.2.3 抓取方法94.3 输出模块104.5 最终效果11五 项目测试125.1 抓取结果错误测试125.2 显示结果错误测试125.3 网络连接测试12六 结论136.1 收获与成长136.2 不足与展望13致谢14参考文献15 绪 论1.1 毕业设计背景与目的近些年,随着以“淘宝”为首的电子商务技术快速发展,越来越多的线下交易逐渐走向线上,其中就包括非法野生动物制品贸易。技术的进步,让大量的非法野生动物贸易成为可能,其灵活的展示方式和便捷的交易方式不仅让网络上相关的交易越发繁荣,相关信息的繁多与复杂也让仅通过人力查看监控变得越发艰

11、难。与之对应的是搜索引擎技术的发展。比如 google,百度。虽然网络中的信息越来越多,越来越 复杂,搜索引擎却可以针对某一个关键词对全网进行有效的搜索。不过它们程序的技术内幕一般都 不公开,此外庞大的搜索引擎最终显示的结果是全网络遍历结果的最优解,而很难做到有效搜索针 对性网站针对关键词的搜索。并且,搜索引擎为了节约搜索速度,多使用比较底层的高级语言编写, 庞大且复杂,并不是很好的参考对象。一方面是网络上越发猖獗的野生动物贸易,越来越多的交易使用黑话、特别的缩写在一些小众网站中形成稳定的供应链和交易圈。另一方面搜索引擎技术虽然发展迅速却难以针对性的监测,不断变化的黑话和网站小众性的干扰更让批

12、量抓取信息方便监测变得越发困难。对于这种困境,使用针对性设计网络爬虫来监测相关的交易是一个相当不错的选择。不同于搜索引擎,爬虫程序是一个自动获取网页的程序,可以对针对性的网页内容中的特定内容,做出有效的抓取,并按照设计保存在本地,方便使用。并且,区别于传统的爬虫和引擎,我选择使用 Python 来编写爬虫。不同于传统高级语言(C,Java 等),Python 相对简单易于完成小型项目,其丰富的模块和良好的兼容性也让用其成为编写爬虫程序的优秀选择之一。1.2 国内外研究状况正如上文所提到的,爬虫在搜索引擎中比较普遍。目前几种比较常用的爬虫实现策略:广度优先的爬虫程序,Repetitive 爬虫程

13、序,定义爬行爬虫程序,深层次爬行爬虫程序。此外, 还有根据概率论进行可用 Web 页的数量估算, 用于评估互联网 Web 规模的抽样爬虫程序; 采用爬行深度、页面导入链接量分析等方法, 限制从程序下载不相关的 Web 页的选择性爬行程序等等。事实上Google 的部分爬虫程序就是基于 Python 的,但由于 Python 自身的限制,更多是作为一种粘合剂配合其他语言编写的内核运行。此外,由于网络非法野生动物贸易的监控并不具有商业性质以及其较为复杂和独特的小众需求, 并无相关的企业从事相关工作。并且由于 WWF 组织本身的成员多以生物学家为主,并没有相关的 专业人员从事相关开发。1.3 论文结

14、构和内容全文介绍了基于 Python 的网络爬虫从确定论题到最终实现效果的过程,具体内容入下:(1) 第章绪论主要说明本次毕业设计项目的背景和目的,包括国内外研究现状以及本次论文的结构。(2) 第二章相关技术介绍主要说明本次毕业设计项目涉及到的相关语言和对应的工具,包括Python,Html,URL 等,以及相关的开发工具 Chrome, PycharmCE。(3) 第三章项目需求与设计主要说明本次毕业设计项目想法成型的过程和解决问题的思路(4) 第四章项目分析和实现,主要是将第三章设想变成现实的过程,结合实例说明操作。(5) 第五章项目测试主要说明了在实际编程过程中测试出错误时的解决方案。(

15、6) 第六章分总结整个项目的收获与不足。(7) 最后是感谢和参考资料。15二 相关技术介绍2.1 Python 语言2.1.1 Python 语言的产生和发展历史Python 的创始人为 Guido van Rossum。1989 年圣诞节期间,在阿姆斯特丹,Guido 为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为 ABC 语言的一种继承。之所以选中Python(根据英国广播公司的节目“蟒蛇飞行马戏”)作为程序的名字。ABC 是由 Guido 参加设计的一种教学语言。就 Guido 本人看来,ABC 这种语言非常优美和强大, 是专门为非专业程序员设计的。但是 ABC 语言并没有成功

16、,究其原因,Guido 认为是非开放性造成的。Guido 决心在 Python 中避免这一错误。同时,他还想实现在 ABC 中闪现过但未曾实现的东西。就这样,Python 在 Guido 手中诞生了。可以说,Python 是从 ABC 发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了 Unix shell 和 C 的习惯。Python 语言的创造者 Guido van Rossum 是根据英国广播公司的节目“蟒蛇飞行马戏”命名这个语言的,并非他本人特别喜欢蛇缠起它们的长身躯碾死动物觅食。Python 已经成为最受欢迎的程序设计语言之一。2

17、011 年 1 月,它被 TIOBE 编程语言排行榜评为 2010 年度语言。自从 2004 年以后,python 的使用率是呈线性增长。图 2.1 计算机语言热门程度排行 2011Fig.2.1 Hot Computer Language in 2011由于 Python 语言的简洁、易读以及可扩展性,在国外用 Python 做科学计算的研究机构日益增多,一些知名大学已经采用 Python 教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理工学院的计算机科学及编程导论就使用 Python 语言讲授。此外,Python 语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验

18、数据、制作图表,甚至开发科学计算应用程序。2.1.2 Python 语言的原理Python 语言的基本原理可以概述为 Python 先把代码(.py 文件)编译成字节码,交给字节码虚拟机,然后虚拟机一条一条执行字节码指令,从而完成程序的执行。详细步骤如下:(1) 字节码在 Python 虚拟机程序里对应的是 PyCodeObject 对象。.pyc 文件是字节码在磁盘上的表现形式。(2) pyc 文件 PyCodeObject 对象的创建时机是模块加载的时候,即 import。Python test.py 会对test.py 进行编译成字节码并解释执行,但是不会生成 test.pyc。如果 t

19、est.py 加载了其他模块,如import util,Python 会对 util.py 进行编译成字节码,生成 util.pyc,然后对字节码解释执行。如果想生成 test.pyc,我们可以使用 Python 内置模块 py_compile 来编译。加载模块时,如果同时存在.py 和.pyc,Python 会尝试使用.pyc,如果.pyc 的编译时间早于.py 的修改时间,则重新编译.py 并更新.pyc。(3) PyCodeObject,Python 代码的编译结果就是 PyCodeObject 对象。(4) pyc 文件格式,加载模块时,模块对应的 PyCodeObject 对象被写入

20、.pyc 文件(5) 分析字节码,Python 提供了内置函数 compile 可以编译 Python 代码和查看(7) 解析指令序列(8) 执行字节码2.1.3 Python 语言的特色简单性:Python 是一种代表简单主义思想的语言,以优雅而著称。良好的阅读性让不少人戏称Python 为伪代码。它使你能够专注于解决问题而不是去搞明白语言本身。易学性:就如同你即将看到的一样,Python 极其容易上手。一方面前面已经提到了,Python 有极其简单的语法,另一方面,Python 虽然也有严格的格式要求,但相比较其他高级语言几乎可以忽略不计。开源性:Python 是 FLOSS(自由/开放源

21、码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。FLOSS 是基于一个团体分享知识的概念。这是为什么 Python 如此优秀的原因之一它是由一群希望看到一个更加优秀的 Python 的人创造并经常改进着的。高层语言:当你用 Python 语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。可移植性:由于它的开源本质,Python 已经被移植在许多平台上(经过改动使它能够工作在不同平台上)。如果你小心地避免使用依赖于系统的特性,那么你的所有 Python 程序无需修改就可以在下述任何平台上面运行。这些平台

22、包括Linux、Windows、FreeBSD、Macintosh、Solaris、OS/2、Amiga 等等。编译性:一个用编译性语言比如 C 或 C+写的程序可以从源文件(即 C 或 C+语言)转换到一个你的计算机使用的语言(二进制代码,即 0 和 1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转载器软件把你的程序从硬盘复制到内存中并且运行。而Python 语言写的程序不需要编译成二进制代码。你可以直接从源代码 运行 程序。在计算机内部,Python 解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要

23、担心如何编译程序,如何确保连接转载正确的库等等,所有这一切使得使用 Python 更加简单。由于你只需要把你的 Python 程序拷贝到另外一台计算机上,它就可以工作了,这也使得你的 Python 程序更加易于移植。面向对象性:Python 即支持面向过程的编程也支持面向对象的编程。在面向过程的语言中, 程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如 C+和 Java 相比,Python 以一种非常强大又简单的方式实现面向对象编程。可扩展性:如果你需要你的一段关键代码运行得更快或者希望某些算法不公开,你可以把你

24、的部分程序用 C 或 C+编写,然后在你的 Python 程序中使用它们。可嵌入性:你可以把 Python 嵌入你的 C/C+程序,从而向你的程序用户提供脚本功能。丰富的库:Python 标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV 文件、密码系统、GUI(图形用户界面)、Tk 和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作 Python 的“功能齐全”理念。2.1.4 python 语言的缺点速度慢:和 C 程序相比非常慢,因

25、为 Python 是解释型语言,你的代码在执行时会一行一行地翻译成 CPU 能理解的机器码,这个翻译过程非常耗时,所以很慢。而 C 程序是运行前直接编译成CPU 能执行的机器码,所以非常快。无法加密:如果要发布你的 Python 程序,实际上就是发布源代码,这一点跟 C 语言不同,C 语言不用发布源代码,只需要把编译后的机器码(也就是你在 Windows 上常见的 xxx.exe 文件)发布出去。要从机器码反推出 C 代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。2.2 URL2.2.1 URL 的定义统一资源定位符是对可以从互联网上得到的资源的

26、位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的 URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。2.2.2 URI 和 URL 的对比和举例简单的来讲,URL 就是在浏览器端输入的 这个字符串。在理解 URL 之前,首先要理解 URI 的概念 URI 指的是 Web 上每种可用的资源,如 HTML 文档、图像、视频片段、程序等都由一个通用资源标志符(Universal Resource Identifier, URI)进行定位。URI 通常由三部分组成:(1)访问资源的命名机制;(2)存放资源的主机名;(3)资源自身 的名称,由路径表示。

27、如下面的 URI:我们可以这样解释它:(1) 这是个可以通过 HTTP 协议访问的资源,(2) 位于主机 上,(3) 通过路径“/html/html40”访问。2.2.3 URL 组成URL 的格式由三部分组成:(1) 第部分是协议(或称为服务方式)。(2) 第二部分是存有该资源的主机 IP 地址(有时也包括端口号)。(3) 第三部分是主机资源的具体地址,如目录和文件名等。第一部分和第二部分用“:/”符号隔开,第二部分和第三部分用“/”符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略。2.3 Html2.3.1 定义超级文本标记语言是标准通用标记语言下的一个应用,也是一种规范,一

28、种标准, 它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不 同的显示效果2.3.2 Html 原理(1) 用户输入网址(假设是个 html 页面,并且是第一次访问),浏览器向服务器发出请求,服务器返回 htm

29、l 文件;(2) 浏览器开始载入 html 代码,发现标签内有一个标签引用外部 CSS 文件; 浏览器又发出 CSS 文件的请求,服务器返回这个 CSS 文件;(3) 浏览器继续载入 html 中部分的代码,并且 CSS 文件已经拿到手了,可以开始渲染页面了;(4) 浏览器在代码中发现个标签引用了一张图片,向服务器发出请求。此时浏览器不会等到图片下载完,而是继续渲染后面 的代码;(5) 服务器返回图片文件,由于图片占用了定面积,影响了后面段落的排布,因此浏览器需要回过头来重新渲染这部分代码;(6) 浏览器发现了个包含行 Javascript 代码的标签,赶快运行它;Javascript 脚本执

30、行了这条语句,它命令浏览器隐藏掉代码中的某个 (style.display=”none”)。杯具啊,突然就少了这么一个元素,浏览器不得不重新渲染这部分代码;(7) Javascript 让浏览器换了一下标签的 CSS 路径;浏览器召集了在座的各位们,向服务器请求了新的 CSS 文件,重新渲染页面。2.3.3 Html 特点超级文本标记语言文档制作不是很复杂,但功能强大,支持不同数据格式的文件镶入,这也是万维网(WWW)盛行的原因之一,其主要特点如下:简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便。可扩展性:超级文本标记语言的广泛应用带来了加强功能,增加标识符等要求,超级文本标记

31、语言采取子类元素的方式,为系统扩展带来保证。平台无关性:虽然个人计算机大行其道,但使用 MAC 等其他机器的大有人在,超级文本标记语言可以使用在广泛的平台上,这也是万维网(WWW)盛行的另一个原因。通用性:另外,HTML 是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。2.4 开发工具2.4.1 ChromeGoogle Chrome,又称 Google 浏览器,是一个由 Google(谷歌)公司开发的网页浏览器。该浏览器是基于其他开源软件所撰写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。软件的名称是来自于称作 Chrome 的网络浏览器图形使用者界面(GUI)。软件的 beta 测试版本在 2008 年 9 月

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2