| 设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计 | |||||
|
|||||
|
|||||
|
|||||
基于Python网络数据采集分析摘 要随着计算机技术的不断发展,新的编程语言层出不穷,Python,Html正是其中的佼佼者。相比较早期普及的高级语言(Java,C语言)等,Python有着更加实用的模块和库,虽然牺牲了底层性,但却更加方便用于开发小型项目。此外,Html也已经被普遍用于网站前端,标记语言的特性结合CSS丰富了网页内容和形式,某种意义上也促进了更加人性化的电子商务系统的发展。本文的网络爬虫正式基于Python语言编写的,通过对Html抓取加工将数据可视化,以监测逐渐从线下转移到线上,并随着电子商务发展越发简单普遍难以追踪的非法野生动物贸易。
本文首先对计算器语言的发展,尤其是Python和Html的优势、基础概念以及性能进行介绍。最后着重介绍可以实现检测网络上非法野生动物贸易的爬虫的设计和实现。程序主要包括三个模块:URL解析,Html抓取,本地输出。Python的开发环境和工具分别是OS X和PyChram CE,主要调用了Python中的Urllib2,beautifulsoup模块。最终的程序可以实现对指定网站,指定关键词抓取指定内容,保存内容到本地,以便于追踪和检测。
关关键字:Python;HTML;爬虫;非法野生动物贸易Python-Based"IIlegalwildlifetrade"SpiderElectronics & Information Technology Program 11-1AbstractWith the continuous development of computer technology, the new programming language afteranother, Python, Html is the one of the best. Compared to the early popularity of high-level language (Java,C language),etc., Python has a more practical modules and libraries, although at the expense of theunderlying 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 contentand form, in a sense also promotedthe development of a more user-friendly e-commerce system. Inthispaper, based on the official web crawler written in Python, Html crawling through the data visualizationprocess to monitor the gradual shift from offline to online, and with the development of electroniccommerce more simple universal untraceable illegal wildlife trade.Firstly, the development of the calculator language, especially Python and Html advantages, basicconcepts and performance are introduced. The last focuses on the design and implementation can beachieved illegal wildlife trade on the reptile detection network. Program includes three modules: URLparsing, Html capture, data visualization output. Python development environment and tools are OS X andPyChram CE, mainlycall in Python Urllib2, re and os module.The final program can be specified site designated keyword to crawl the specified content, and outputin PC,inorder totrack and detect.Key words: Python;Html;spider;llegal wildlife trade
目 录
摘 要 1
Python-Based "I11ega1 wildlife trade” Spider 2
一 引 言 2
1.1 毕业设计背景与目的 5
1.2 国内外研究状况 5
1.3 论文结构和内容 5
二 相关技术介绍 2
2.1 Python 语音 5
2.1.1 Python 语音的产生和发展历史 6
2.1.2 Python 语音的原理 6
2.1.3 Python 语音的特色 6
2.1.4 Python 语音的缺点 6
2.2 URL 5
2.2.1 URL的定义 6
2.2.2 URL和URL的对比和举例 6
2.2.3 URL组成 6
2.3 Html 5
2.3.1 定义 6
2.3.2 Html 原理 6
2.3.3 Html 特点 6
2.4开发工具 5
2.4.1 Chrome 6
2.4.2 PycharmCE 6
2.4.3终端 6
三 项目需求及设计 2
3.1 输入板块分析 5
3.2 需要抓取的内容 5
3.3 本地输出 5
四 项目分析及实现 2
4.1输入模块 5
4.1.1 目标网站 URL 6
4.1.2 Urillib2模块 6
4.1.3 伪装 6
4.2抓取模块 5
4.2.1 URL与Html 6
4.2.2 Beautiful Soup库 6
4.2.3抓取方法 6
4.3输出模块 5
4.4最终效果 5
五 项目测试 2
5.1 抓取结果错误测试 5
5.2显示结果错误测试 5
5.3网络连接测试 5
六 结论 2
6.1收获与成长 5
6.2不足与展望 5
致谢 2
参考文献 2
一 引 言1.1毕业设计背景与目的近些年,随着以“淘宝”为首的电子商务技术快速发展,越来越多的线下交易逐渐走向线上,其中就包括非法野生动物制品贸易。技术的进步,让大量的非法野生动物贸易成为可能,其灵活的展示方式和便捷的交易方式不仅让网络上相关的交易越发繁荣,相关信息的繁多与复杂也让仅通过人力查看监控变得越发艰难。
与之对应的是搜索引擎技术的发展。比如google,百度。虽然网络中的信息越来越多,越来越复杂,搜索引擎却可以针对某一个关键词对全网进行有效的搜索。不过它们程序的技术内幕一般都不公开,此外庞大的搜索引擎最终显示的结果是全网络遍历结果的最优解,而很难做到有效搜索针对性网站针对关键词的搜索。并且,搜索引擎为了节约搜索速度,多使用比较底层的高级语言编写,庞大且复杂,并不是很好的参考对象。
一方面是网络上越发猖獗的野生动物贸易,越来越多的交易使用黑话、特别的缩写在- -些小众网站中形成稳定的供应链和交易圈。另一方 面搜索引擎技术虽然发展迅速却难以针对性的监测,不断变化的黑话和网站小众性的干扰更让批量抓取信息方便监测变得越发困难。
对于这种困境,使用针对性设计网络爬虫来监测相关的交易是一个相当不错的选择。不同于搜索引擎,爬虫程序是一个自动获取网页的程序,可以对针对性的网页内容中的特定内容,做出有效的抓取,并按照设计保存在本地,方便使用。并且,区别于传统的爬虫和引擎,我选择使用Python .来编写爬虫。不同于传统高级语言(C,Java 等),Python 相对简单易于完成小型项目,其丰富的模块和良好的兼容性也让用其成为编写爬虫程序的优秀选择之--。
1.2国内外研究状况正如.上文所提到的,爬虫在搜索引擎中比较普遍。目前几种比较常用的爬虫实现策略:广度优先的爬虫程序,Repetitive 爬虫程序,定义爬行爬虫程序,深层次爬行爬虫程序。此外,还有根据概率论进行可用Web页的数量估算,用于评估互联网Web规模的抽样爬虫程序;采用爬行深度、页面导入链接量分析等方法,限制从程序下载不相关的Web页的选择性爬行程序等等。事实上Google的部分爬虫程序就是基于Python的,但由于Python自身的限制,更多是作为一-种粘合剂配合其他语言编写的内核运行。
此外,由于网络非法野生动物贸易的监控并不具有商业性质以及其较为复杂和独特的小众需求,并无相关的企业从事相关工作。并且由于WWF组织本身的成员多以生物学家为主,并没有相关的专业人员从事相关开发。
1.3论文结构和内容全文介绍了基于Python的网络爬虫从确定论题到最终实现效果的过程,具体内容入下:(1)第一章绪论主要说明本次毕业设计项目的背景和目的,包括国内外研究现状以及本次论文的结构。(2)第二章相关技术介绍主要说明本次毕业设计项目涉及到的相关语言和对应的工具包括PythonHtml,URL 等,以及相关的开发工具Chrome,PycharmCE。(3)第三章项目需求与设计主要说明本次毕业设计项目想法成型的过程和解决问题的思路(4)第四章项目分析和实现,主要是将第三章设想变成现实的过程,结合实例说明操作。(5)第五章项目测试主要说明了在实际编程过程中测试出错误时的解决方案。(6)第六章分总结整个项目的收获与不足。(7)最后是感谢和参考资料。二 相关技术介绍2.1 Python语言2.1.1 Python语言的产生和发展历史Python的创始人为Guido van Rossum。1989 年圣诞节期间,在阿姆斯特丹,Guido 为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选中Python (根据英国广播公司的节目“蟒蛇飞行马戏”)作为程序的名字。ABC是由Guido参加设计的一种教学语言。就Guido本人看来,ABC这种语言非常优美和强大,是专门为非专业程序员设计的。但是ABC语言并没有成功,究其原因,Guido认为是非开放性造成的。Guido决心在Python中避免这一-错误。同时,他还想实现在ABC中闪现过但未曾实现的东西。就这样,Python 在Guido手中诞生了。可以说Python 是从ABC发展起来,主要受到了Modula-3(另一种相当优美且强大的语言,为小型团体所设计的)的影响。并且结合了Unix shell和C的习惯。Python语言的创造者Guido van Rossum是根据英国广播公司的节目“蟒蛇飞行马戏”命名这个语言的并非他本人特别喜欢蛇缠起它们的长身躯碾死动物觅食。Python已经成为最受欢迎的程序设计语言之一一。2011 年1月,它被TIOBE编程语言排行榜评为2010年度语言。自从2004年以后,python 的使用率是呈线性增长。图2.1计算机语言热[ ]程度排行2011Fig.2.1 Hot Computer Language in 2011由于Python语言的简洁、易读以及可扩展性,在国外用Python做科学计算的研究机构日益增多,- -些知名大学已经采用Python教授程序设计课程。例如卡耐基梅隆大学的编程基础、麻省理I学院的计算机科学及编程导论就使用Python语言讲授。此外,Python语言及其众多的扩展库所构成的开发环境十分适合工程技术、科研人员处理实验数据、制作图表,甚至开发科学计算应用程序。2.1.2 Python语言的原理Python语言的基本原理可以概述为Python先把代码(.py 文件)编译成字节码,交给字节码虚拟机,然后虚拟机- -条- -条执行字节码指令,从而完成程序的执行。详细步骤如下:(1)字节码在Python虛拟机程序里对应的是PyCodeObject对象。.pyc 文件是字节码在磁盘上的表现形式。(2 )pyc文件PyCodeObject对象的创建时机是模块加载的时候即import Python test.py 会对test.py进行编译成字节码并解释执行,但是不会生成test.pyc.如果test.py加载了其他模块如import util,Python会对utilpy进行编译成字节码,生成util.pyc,然后对字节码解释执行。如果想生成test.pyc,我们可以使用Python内置模块py_ compile来编译。加载模块时,如果同时存在.ρy和.pyc,Python会尝试使用.pyc,如果.pyc的编译时间早于.py的修改时间,则重新编译.py并更新.pyc。(3) PyCodeObject, Python 代码的编译结果就是PyCodeObject 对象。(4) pyc文件格式,加载模块时,模块对应的PyCodeObject对象被写入.pyc文件(5)分析字节码,Python提供了内置函数compile可以编译Python代码和查看(7)解析指令序列(8)执行字节码2.1.3 Python语言的特色简单性: Python 是一-种代表简单主义思想的语言,以优雅而著称。良好的阅读性让不少人戏称Python为伪代码。它使你能够专注于解决问题而不是去搞明白语言本身。易学性:就如同你即将看到的一样,Python 极其容易上手。-方 面前面已经提到了,Python有极其简单的语法,另-方面,Python 虽然也有严格的格式要求,但相比较其他高级语言几乎可以忽略不计。开源性: Python 是FLOSS (自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一- 部分用于新的自由软件中。FLOSS 是基于一个团体分享知识的概念。这是为什么Python如此优秀的原因之一-- 它 是由- -群希望看到一个更加优秀的Python的人创造并经常改进着的。高层语言:当你用Python语言编写程序的时候,你无需考虑诸如如何管理你的程序使用的内存一类的底层细节。可移植性:由于它的开源本质,Python 已经被移植在许多平台上( 经过改动使它能够工作在不同平台.上)。如果你小心地避免使用依赖于系统的特性,那么你的所有Python程序无需修改就可以在下述任何平台.上面运行。这些平台包括Linux. Windows. FreeBSD、 Macintosh, Solaris. 0S/2、Amiga .等等。编译性:一个用编译性语言比如C或C++写的程序可以从源文件(即C或C++语言)转换到一个你的计算机使用的语言(二进制代码,即0和1)。这个过程通过编译器和不同的标记、选项完成。当你运行你的程序的时候,连接/转 载器软件把你的程序从硬盘复制到内存中并且运行。而Python语言写的程序不需要编译成二进制代码。你可以直接从源代码运行程序。在计算机内部,Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。事实上,由于你不再需要担心如何编译程序,如何确保连接转载正确的库等等,所有这--切使得使用Python更加简单。由于你只需要把你的Python 程序拷贝到另外- -台计算机上,它就可以工作了,这也使得你的Python程序更加易于移植。面向对象性:Python即支持面向过程的编程也支持面向对象的编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。与其他主要的语言如C++和Java相比,Python 以一种非常强大又简单的方式实现面向对象编程。可扩展性:如果你需要你的一-段关键代码运行得更快或者希望某些算法不公开,你可以把你的部分程序用C或C++编写,然后在你的Python 程序中使用它们。可嵌入性:你可以把Python嵌入你的C/C++程序,从而向你的程序用户提供脚本功能。丰富的库: Python 标准库确实很庞大。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、 FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI (图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。2.1.4 python 语言的缺点速度慢:和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一 行地翻译,成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C程序是运行前直接编译成CPU能执行的机器码,所以非常快。无法加密:如果要发布你的Python程序,实际上就是发布源代码,这一-点跟C语言不同,C语言不用发布源代码,只需要把编译后的机器码(也就是你在Windows.上常见的xx.exe文件)发布出去。要从机器码反推出C代码是不可能的,所以,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。2.2 URL2.2.1 URL的定义统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一.种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有-一个唯一-的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。2.2.2 URI和URL的对比和举例简单的来讲,URL 就是在浏览器端输入的http://www.baidu.com这个字符串。在理解URL之前,首先要理解URI的概念URI指的是Web.上每种可用的资源,如HTML文档、图像、视频片段、程序等都由一个通用资源标志符(Universal Resource Identifier,URI)进 行定位。URI通常由三部分组成: (1) 访问资源的命名机制; (2) 存放资源的主机名: (3) 资源自身的名称,由路径表示。如下面的URI: http://www.why.com.cn/myhtml/html1223/我们可以这样解释它: .(1)这是一个可以通过HTTP协议访问的资源,(2)位于主机www.webmonkey.com.cn上,(3)通过路径“/html/html40”访问。2.2.3 URL组成URL的格式由三部分组成:(1)第一部分是协议(或称为服务方式)。(2)第二部分是存有该资源的主机IP地址(有时也包括端口号)。(3)第三部分是主机资源的具体地址,如目录和文件名等。第一部分和第二部分用”“//”符号隔开,第二部分和第三部分用“”符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略。2.3 Html2.3.1定义超级文本标记语言是标准通用标记语言下的一个应用,也是一-种规范,- -种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一-种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果2.3.2 Html原理(1)用户输入网址(假设是个html页面,并且是第一次访问) ,浏览器向服务器发出请求,服务器返回html文件;(2)浏览器开始载入html代码,发现
标签内有一个标签引用外部CSs文件; .浏览器又发出CSS文件的请求,服务器返回这个CSS文件;(3)浏览器继续载入html中部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了(4)浏览器在代码中发现-一个