《python-网络爬虫.docx》由会员分享,可在线阅读,更多相关《python-网络爬虫.docx(66页珍藏版)》请在优知文库上搜索。
1、抓取网页的含义和UR1.基本构成1、网络爬虫的定义网络爬虫,即WebSpider,是一个很形象的名字。把互联网比方成一个蜘蛛网,那么SPider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来找寻网页的。从网站某一个页面(通常是首页)起先,读取网页的内容,找到在网页中的其它链接地址,然后通过这些链接地址找寻下一个网页,这样始终循环下去,直到把这个网站全部的网页都抓取完为止。假如把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上全部的网页都抓取下来。这样看来,网络爬虫就是一个爬行程序,一个抓取网页的程序.网络爬虫的基本操作是抓取网页。那么如何才能为所欲为地获得自己想要的页面
2、?我们先从UR1.起先。2、阅读网页的过程抓取网页的过程其实和读者平常运用IE阅读器阅读网页的道理是一样的。比如说你在阅读器的地址栏中输入baidu这个地址。打开网页的过程其实就是阅读器作为一个阅读的“客户端,向服务器端发送了一次恳求,把服务器端的文件抓”到本地,再进行说明、呈现。HTM1.是一种标记语言,用标签标记内容并加以解析和区分。阅读器的功能是将获得到的HTM1.代码进行解析,然后将原始的代码咕变成我们干脆看到的网站页面.3、URl的概念和举例简洁的来讲,UR1.就是在阅读器端输入的baid这个字符串。在理解UR1.之前,首先要理解URI的概念。什么是URI?Web上每种可用的资源,如
3、HTM1.文档、图像、视频片段、程序等都由一个通用资源标记符(UniVerSalResourceIdentifier,URI)进行定位。URl通常由三部分组成:访问资源的命名机制;存放资源的主机名;资源自身的名称,由路径表示。如下面的URI:我们可以这样说明它:这是一个可以通过协议访问的资源,位于主机webmonkey上,通过路径7htmlhtml40访问.4、UR1.的理解和举例UR1.是URl的一个子集。它是UniformResource1.ocator的缩写,译为统T源定位符.通俗地说,UR1.是Intemet上描述信息资源的字符串,主要用在各种WWW客户程序和服务器程序上。采纳UR1.
4、可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和书目等.UR1.的格式由三部分组成:第一部分是协议(或称为服务方式)。其次部分是存有该资源的主机IP地址(有时也包括端口号)。第三部分是主机资源的具体地址,如书目和文件名等.第一部分和其次部分用符号隔开,其次部分和第三部分用7符号隔开。第一部分和其次部分是不行缺少的,第三部分有时可以省略。下面来看看两个UR1.的小例子。1 .协议的UR1.示例:运用超级文本传输协议,供应超级文本信息服务的资源.例:/peopledailychannelwelcome.htm其计算机域名为peopledaily超级文本文件(文件类型为html)是在
5、书目/channel下的welcome.htm.这是中国人民日报的一台计算机。例::/talktalkl.htm其计算机域名为o超级文本文件(文件类型为html)是在书目/talk下的talkl.htm这是瑞得闲聊室的地址,可由此进入瑞得闲聊室的第1室。2 .文件的UR1.用UR1.表示文件时,服务器方式用file表示,后面要有主机IP地址、文件的存取路径(即书目)和文件名等信息。有时可以省略书目和文件名,但7符号不能省略.例:fileftp.yoyodynepubfilesfoobar.tt上面这个UR1.代表存放在主机ftp.yoyodyne上的PUb/files/书目下的T文件,文件名是
6、foobar.tto例:file:ftp.yoyodyne/pub代表主机ftp.yoyodyne上的书gpubo例:fileftp.yoyodyne/代表主机ftp.yoyodyne的根书目爬虫最主要的处理对象就是UR1.,它依据UR1.地址取得所须要的文件内容,然后对它进行进一步的处理。因此,精确地理解UR1.对理解网络爬虫至关重要。利用urllib2通过指定的UR1.抓取网页内容所谓网页抓取,就是把UR1.地址中指定的网络资源从网络流中读取出来,保存到本地.类似于运用程序模拟IE阅读器的功能,把UR1.作为恳求的内容发送到服务器端,然后读取服务器端的响应资源。在Python中,我们运用u
7、rllib2这个组件来抓取网页。urllib2是Python的一个获得UR1.s(UniformResource1.oCatOrS)的组件。它以urlopen函数的形式供应了一个特别简洁的接口。最简洁的urllib2的应用代码只须要四行。我们新建一个文件urllib2.testl.py来感受一下urllib2的作用::/baidu2response=urllib2.urloen(3htnl-response.read()4. printhtnl按下F5可以看到运行的结果:_7iPythonSheillefdiShelebgQptionsWindowsyelwimu=+p;img.src=ttp
8、:/nsclck.babds.coran.user;funccioIn_addTJ(obj)(addEV(obJrmousedownfunction(e)vare=e11window.event;varItargete.targete.SrcElenient;ns_c(fm,:,behslr,cab,:target.na11etj-user,Ir,unSencodeURICoaponent(un););for(var1=0;1for(var三0;nv.length;*)(nv(i).name,tj_,tj_nv(i;)for(vari三0;1Ik.length;i+)(lki.na11e三tj
9、-tjlJci;)();(functlon()3:(key*,hccp:/I/music.baidu.consearc7frps6ieucf-8,ttjiJ11g:wordtrhttp:/image.baidu.Icom2cr三201326592&cl=24nc三141m=-i4st三-lfctn=baduiEage4i3cype三2ifm=pv=iz=04ie=uItf-8)ztjvideol:wordrhttp:/video.b:?*)+wd+,encodeURICo11ponent(key);target.href-url;)else(target.href-targeIz.ref.match(newRegExp(*hctp:/.+)0;neie&ns_c(rm:bIehs,r,cab,:name,query1:encodeURICoraponent(key)z,un:encodeURICo11onent(bds.cIorra.user);)();addEV(wrloadfunction()Jc.focus();w.onunload=funcIton();scriptcype,text/javascrpthsrc-http:/sl.bdatar