设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>计算机毕业设计 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
基于Python网络数据采集分析 毕业论文
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  

基于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"Spider
     Electronics & Information Technology Program 11-1
                Abstract
With 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., 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 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 electronic
commerce 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: URL
parsing, 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计算机语言热[ ]程度排行2011
                                 Fig.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 URL
2.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 Html
2.3.1定义
     超级文本标记语言是标准通用标记语言下的一个应用,也是一-种规范,- -种标准,它通过标记符号来标记要显示的网页中的各个部分。网页文件本身是一-种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果
2.3.2 Html原理
(1)用户输入网址(假设是个html页面,并且是第一次访问) ,浏览器向服务器发出请求,服务器返回html文件;
(2)浏览器开始载入html代码,发现<head>标签内有一个<link>标签引用外部CSs文件; .
浏览器又发出CSS文件的请求,服务器返回这个CSS文件;
(3)浏览器继续载入html中<body>部分的代码,并且CSS文件已经拿到手了,可以开始渲染页面了
(4)浏览器在代码中发现-一个<img>标签引用了- -张图片,向服务器发出请求。此时浏览器不会等到图片下载完,而是继续渲染后面的代码;
(5)服务器返回图片文件,由于图片占用了一-定面积,影响了后面段落的排布,因此浏览器需要回过头来重新渲染这部分代码;
(6)浏览器发现了一个包含一行Javascript代码的<script>标签,赶快运行它;
Javascript脚本执行了这条语句,它命令浏览器隐藏掉代码中的某个<div> ( style.display="none")。杯具啊,突然就少了这么一一个元素,浏览器不得不重新渲染这部分代码;
(7 )Javascript让浏览器换了一下 <link>标签的CSS路径;浏览器召集了在座的各位<div><span><ul><li>们,向服务器请求了新的CSS文件,重新渲染页面。
2.3.3 Html特点
超级文本标记语言文档制作不是很复杂,但功能强大,支持不同数据格式的文件镶入,这也是万维网(WWW)盛行的原因之一,其主要特点如下:
简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便。
可扩展性:超级文本标记语言的广泛应用带来了加强功能,增加标识符等要求,超级文本标记语言采取子类元素的方式,为系统扩展带来保证。
平台无关性:虽然个人计算机大行其道,但使用MAC等其他机器的大有人在,超级文本标记语言可以使用在广泛的平台上,这也是万维网(WWW)盛行的另-一个原因。
通用性:另外,HTML 是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。
2.4开发工具
2.4.1 Chrome
Google Chrome,又称Google 浏览器,是一个 由Google ( 谷歌)公司开发的网页浏览器。该浏览器是基于其他开源软件所撰写,包括WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。软件的名称是来自于称作Chrome的网络浏览器图形使用者界面(GUI) 。软件的beta测试版本在2008年9月2日发布,提供50种语言版本,有Windows、Mac OS X、Linux、Android、以及ioS版本提供下载。2013 年9月,Chrome 已达全球份额的43%,成为全球使用最广的浏览器。在本次毕业设计项目中,Chrome不仅是查找网页的工具,也是审阅Html寻找关键<tag>的重要工具。
2.4.2 PycharmCE
PyCharm是一种PythonIDE带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如调试、语法高亮、Project 管理、代码跳转、智能提示、自动完成、单元测试、版本控制。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。
本次毕业设计项目中,Pychram CE承担了全部的Python开发工作,其优秀的自动关联和记忆关键词功能,很好的提高了效率,减少不必要的错误。
2.4.3终端.
终端是OSX中操作系统指令的应用,在本次项目中终端在最终的.py文件执行中扮演重要的角色。


三  项目需求及设计

3.1输入板块分析
3. 1常见交易论坛
Table.1 Common Trade Website

3.1常见网上贸易物种及代号
Table.2 Common Keywords In Trade On The Internet

3.2需要抓取的内容
   确认了需要监测的网站和关键词之后,下--步就是其URL对应的网页内容进行抓取。首先需要遍历整个网页的Html代码,需找其中有价值的信息,包括交易品名称,交易品链接,卖家信息,交易品照片信息以及交易发布时间。特别是交易品的链接和照片,由于非法野生动物贸易品本身价值高昂,.造假就成了普遍现象,最终的判断仍需要人肉眼进行鉴别,当然这是后话了,并不在本次毕业设计项目之中。
3.3本地输出
  完成了抓取之后,还需要将抓取的内容有效的排榜方便阅读。更重要的是可以保存到本地,方便查看和反馈给WWF进一步追踪和查处。最好的是可以一-个关键词一-个链接的输出,方便管理并避免重复作业。
四 项目分析及实现
4.1输入模块
    输入模块主要包括特定的URL以及关键词内容,在Python爬虫中,我们使用urlib2这个Python内置模块来识别读取相关的URL。
4.1.1目标网站URL
为了更加有效的找到关键字对应的信息,本项目中所有的URL不仅仅是目标网站的URL。由于遍历整个网站需要消耗更多的资源,也并不能很好的体现Python的优势,更是添加了开发的难度,我选择使用目标网站论坛自身的搜索板块的URL作为程序读取的内容。这样既可以降低工作量,也可以更加方便的抓取相关的信息。
4.1.2 Urillib2模块
    Urlib2模块最基础的功能是让客户端与服务器端通过request与response来沟通,客户端先向服务端发送request,然后接收服务端返回的response。urllib2 提供了request的类,可以让用户在发送请求前先构造-一个request的对象,然后通过urllib2.urlopen方法来发送请求。
除此之外Urllib2 还可以完成如Proxy 的设置Timeout 设置在HTTP Request中加入特定的Header,Redirect,设置Cookie,使用HTTP 的PUT 和DELETE 方法,得到HTTP 的返回码,Debug Log等用
4.1.3伪装
    在实际使用中,由于不少网站都以及具有的反爬虫的功能,为了能够不被识别,我们需要将每次访问伪装成浏览器进行操作,并设置时间限制防止被判别为程序抓取,屏蔽IP。
4.2抓取模块
    抓取模块式整个项目的核心,如何准确的抓取必要的内容,不被其他的内容干扰是该模块需要考虑并不断优化的地方。
4.2.1 URL与html
    确认URL并能够成功通过程序访问该地址返回Html代码时,就可以考虑抓取其中的有效信息了,在本项目中,我们使用Python 开源社区开发的Beautiful Soup模块作为抓取的核心。
4.2.2 Beautiful Soup库
    Beautiful Soup提供- - 些简单的、python 式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。
    Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式, 这时,Beautiful Soup 就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。
    Beautiful Soup已成为和1xml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。
4.2.3抓取方法
    以实际的网页为例,这是华夏收藏网(cang.com) 中搜索关键词牙雕后显示的界面。我们可以看到每一条交易信息在Html中都被封装一-个固定的标签中。而整个交易信息模块又被封装在一一个名为<div class_ =*listview J-srp-content>的标签中。

                图4.2网页Html显示截图
Fig.4.2 Web Html screenshot
    使用BeatifulSoup 可以层层筛选标签,直到最终抓取到想要的信息。其中最为核心的代码如下:#href_ list[i].get('href),image_ list[i].get('data-original),title_ list[i].get_ text(),eller_ list[i].get_ text(),time_ list[i].get_ _text()
该段代码包含5个参数,分别对应交易品名称,交易品链接,卖家信息,交易品照片信息以及交易发布时间。而在Html代码中,上面的每--个信息都藏在比较隐蔽的位置,BeautifulSoup可以遍历并搜索指定的<tag>并通过其中包含的不同函数输出<tag>本身的内容或者<tag></tag>之间所包含的内容。
4.3输出模块
能够有效的抓取html里面的内容之后,输出相关的数据并本地化保存需要调用Python中包含的open函数。其构造为open(filename,访问方式[r,w,a,b]),其中r:读操作; w:写操作; a:添加操作; b:二进制存取操作,如果缺省就是r。Python中文件操作可以通过open函数,这的确很像C语言中的fopen。.通过open函数获取- - 个file object,然后调用read(),write()等 方法对文件进行读写操作。

                   图4.3抓取内容显示效果
4.5最终效果
    在终端的相应目录中找到.py文件,使用python .py 文件即可执行,出线下面图片所示的页面,输入关键词和对应的URL之后,如果保存成功会有相应的提示。

                     图4.5.1程序运行界面
              Fig.4.5.1 Table of Running Program
打开.py文件所在文件夹即可见生成的.txt文件,搜索多个关键词之后,会有如下的效果: .

                         图4.5.2抓取后显示结果
              Fig.4.5.2 The result of program
五   项目测试
5.1抓取结果错误测试
   抓取结果错误测试是指将需要抓取的多个元素,一一单独去除输出。确认每--个单独的元素都可以正常稳定抓取,再调整排序,保证比较舒适的显示状态即可。
    在实际过程中还会遇到ACSII码无法正常显示的情况。处理这种情况可以在对应的变量后面添加decode (UTF-8) 来解决。
5.2显示结果错误测试
    显示结果错误测试主要是对已经保存到本地的文件标题以及内容的测试,可以通过基本的对比和匹配查看是否出现错误。如果出现显示错误的情况,需要向上溯源查找问题具体的原因,在抓取结果测试无误的情况下,多半是输入的URL不准确或网站服务不稳定造成的。
5.3网络连接测试
   报错的数字对应的具体情况和处理方案如下:
Table.3 Network Test

六   结 论
6.1收获与成长
    相对于完全手工抓取非法野生动物贸易信息,本次毕设的最终成果可以一定程度上节省人力资源,也更加方便追踪和储存相关的信息。
    通过这次毕业设计,不仅仅体会到技术的世界日新月异,也在感受各种技术的出现和不断发展促进了各行各业的发展。虽然也滋生了- -些并不总是积极的东西,但此消彼长,技术对抗技术也一-定会值得讨论的话题。相信爬虫的编写和可塑性会越来越好,也能够更加智能的开展。
    这次毕设项目不仅仅让我感受到了编程语言,尤其是Python的魅力,也通过解决实际问题的方式,了解更多此前仅从书面上不曾学会的东西。Python的优雅,易于实现以及丰富的库都给我留下了深刻的印象。尤其是开源社区和开源文档的出线,让我有理由相信未来的程序发展会越来越多的成为平常人而不只是程序员所需要具备的特权。此外,因为实际项目需要而接触并慢慢熟悉了以Html为代表的网页前端语言的动向和发展,也打开了另一扇窗户。
6.2不足与展望
   虽然本次毕业设计的最终成果基本可以满足需求,但是离-开始的设想仍然有不少的距离。主要的遗憾以及希望继续改进的地方有:
    (1)URL中对应的中文随机变化的问题。由于多数网站是使用自己的加密方式,中文输入后会对
应转成随机的数字英文符号代码,这给批量抓取带来了巨大的麻烦。
BeautifulSoup页面抓取格式兼用性的问题。由于BeautifulSoup在抓取指定内容时依靠的是Html中的<tag>信息,所以每一个网站需要单独对内容进行一次匹配,无法兼容其他的网站。
    (2)尝试其他的方式占用了太多的时间。在实际开发中,我还尝试了使用标准的抓取框架Scrapy以及正则表达式匹配方式达成抓取的目的,但都失败了,也让我明白解决实际问题比理论最优解更值得投入时间。
本次毕业设计编写的爬虫程序相对而言维度仍比较单--,支持的格式和网站也有限,希望在后续的优化中可以更好的处理各种情况。


                             致  谢
    大学三年匆匆而过,虽然总有遗憾,毕业设计也无法例外,但仍然非常感谢这次机会。三年的生活不仅仅只是时间的流逝,也在这个过程中体会着前沿的资讯与技术,为未来的生活打下良好的基础。
    广西城市职业大学作为我的母校,尤其身处在信息学院,享受着超值的食宿学习资源,以及来自各位.领导、老师、同学们的热心帮助,尤其是赵国伟老师的指导,陈碧霞老师的善诱,以及来自同年级的曾向荣、曾凡彦的诸多修正与帮助。
    此外还需要感谢WWF给予的支持,包括提供重要的网站和特殊信息的内容,以及其他志愿者团队成员的鼓励。
最后,非常感谢一直以来默默支持的家人,尤其是父母,都给了我足够的空间和支持。
                                            参考文献


[1] Swaroop. C.H A Byte of Python [DB/OL] 2003-2005
htp://sebug.net/paper/python/index.html
[2]BeautifulSoup4.2.0documentation[DB/OL]                 http://www .crummy .com/software/BeautifulSoup/bs4/doc/index.zh.html
[3] Z.Shaw LearnPythonTheHardWay[DB/OL] 2011
htp://sebug.net/paper/books/LearnPythonTheHardWay/ex 1.html
[4] HTML Tï/È ï f[DB/OL]
http:/baike.baidu.com/link?url=HAZwB-g0FySmtGN7zQ7bXV1 1-0_ d18WmFnPQZnqqplX_ _ntlc. _qVP3JzYkRNB1TsX
[5] Python Wikipaedia[DB/OL] www .wikipedia.com/python
[6] Wesley J. Chun. Core Python Programming[M].lL ïï: Л Edlß ltiÀt ,2008-06:8-10.
[7] 刘世涛等,简析搜索引擎中网络爬虫的搜索策略[N], 阜阳师范学院学报(自然科学版), 2006(09): P60~63.8] 荣传湘等,搜索引擎中数据获取的设计与实现[)]沈阳:小型微型计算机系统,1999.
[9]叶允明等.分布式Web Crawler的研究:结构、算法和策略[].电子学报, 2002, 30 (12A).
[10] Michelangelo Diligenti, Frans Coetzee, Steve Lawrence, etal. Focused Craw ling using Context Graph s[J ], Intemat ionalConference on Very Large Databases. 2002, (26):Р 527~534.
[11]高克宁等,支持Web信息分类的高性能蜘蛛程序[],小型微型计算机系统,2006 (07) : P1309~1312.[12] 李学勇等,网络蜘蛛搜索策略比较研究[A], 计算机工程与应用,2004(04): P131.
[13] Andrei Z. Broder, Marc Najork, and Janet L. Wiene Efficient URL Caching for World Wide Web Crawling[DB/OL]htp://esearch.microsoft.com/apps/pubs/default.aspx?id=65157
[14] R.Freemen HeadFirst Html&CSS[Z] HFLJJ/itt 2009
[15]raffic有关非法野生动物贸易相关网站与关键词[DB/0L]2014.7

  全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
基于JSP+SSM+MySQL的 基于JSP+SSM的图书借阅管理 基于JSP+SSH的网上宠物交易
基于VUE+SSM+MySQL的 基于Cisco Packet T 基于eNSP的某大学校园网络规划
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!