爬虫基于python的网络爬虫设计

爬虫代理  时间:2021-04-12  阅读:()

基于pthon的网络爬虫设计

【摘要】近年来随着网络应用的逐渐扩展和深入,如何高效的获取网上数据成为了无数公司和个人的追求,在大数据时代,谁掌握了更多的数据谁就可以获得更高的利益而网络爬虫是其中最为常用的一种从网上爬取数据的手段。

网络爬虫 即WbSpi r,是一个很形象的名字。如果把互联网比喻成一个蜘蛛网,那么Spie就是在网上爬来爬去的蜘蛛。网络蜘蛛是通过网页的链接地址来寻找网页的。从网站某一个页面(通常是首页)开始读取网页的内容找到在网页中的其它链接地址,然后通过这些链接地址寻找下一个网页这样一直循环下去直到把这个网站所有的网页都抓取完为止。如果把整个互联网当成一个网站,那么网络蜘蛛就可以用这个原理把互联网上所有的网页都抓取下来。

那么既然网络爬虫有着如此先进快捷的特点,我们该如何实现它呢?在众多面向对象的语言中,首选yt   因为yt hon是一种“解释型的、面向对象的、带有动态语义的”高级程序,可以使人在编程时保持自己的风格,并且编写的程序清晰易懂,有着很广阔的应用前景。

关键词 yhon 爬虫 数据

1 前言

 . 本编程设计的目的和意义

随着网络的迅速发展万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战。搜索引擎(例如传统的通用搜索引擎A ta  ta ahoo!和Goole等)作为一个辅助人们检索信息的工具成为用户访问万维网的入口和指南。但是,这些通用性搜索引擎也存在着一定的局限性如 (  )不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。 (2)通用搜索引擎的目标是尽可能大的网络覆盖率有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。 (3 万维网数据形式的丰富和网络技术的不断发展图片、数据库、音频视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。 (4) 通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。 为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标有选择的访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫geeralpurpo  e eb rwle  不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。

1 编程设计目及思路

1.2. 1编程设计目的

学习了解并熟练掌握 thn的语法规则和基本使用,对网络爬虫的基础知识进行了一定程度的理解,提高对网页源代码的认知水平学习用正则表达式来完成匹配查找的工作,了解数据库的用途学习onob数据库的安装和使用及配合  hn的工作。

1.2 2设计思路

1)以世纪佳缘网为例,思考自己所需要的数据资源,并以此为基础设计自己的爬虫程序。2)应用pythn伪装成浏览器自动登陆世纪佳缘网,加入变量打开多个网页。

3)通过pthon的rl  ib函数进行世纪佳缘网源代码的获取。

4)用正则表达式分析源代码,找到所需信息导入excel。

5)连接数据库将爬下的数据存储在数据库中。

1 3本编程设计应达到的要求

 、对特定的网站爬取特定的数据;

2、实现代码和得到结果;

3、能够和数据库进行连接,将爬下的数据存储在数据库中。

4、将爬下的数据储存在exel中方便编辑。

2 编程设计方案

. 1爬取方案

.   1所需爬取的数据

以世纪佳缘网为例,所需要爬取的数据为注册世纪佳缘网的人的用户名、真实姓名、性别、年龄、学历、月收入这些直观信息。

.   2用ython获取世纪佳缘网的源代码

爬虫最主要的处理对象就是UL它根据RL地址取得所需要的文件内容然后对它进行进一步的处理。因此,准确地理解URL对理解网络爬虫至关重要。

R是URI的一个子集。它是n for Resource Lcator的缩写译为“统一资源定位符”。

通俗地说 UR是I  e  et上描述信息资源的字符串主要用在各种W客户程序和服务器程序上。采用URL可以用一种统一的格式来描述各种信息资源,包括文件、服务器的地址和目录等。 UR的格式由三部分组成:

①第一部分是协议(或称为服务方式。

②第二部分是存有该资源的主机I地址(有时也包括端口号。

③第三部分是主机资源的具体地址,如目录和文件名等。

第一部分和第二部分用“:/ ”符号隔开,

第二部分和第三部分用“/”符号隔开。

第一部分和第二部分是不可缺少的第三部分有时可以省略。

例如:其计算机域名为超级文本文件(文件类型为.hl是在目录/alk下的ak .h。这是瑞得聊天室的地址可由此进入瑞得聊天室的第1室。

yhon获取网页源代码可用ur   或u l  ib函数进行极其方便快捷,代码如下imort u   i2res  s  ur lib2 rlo n(' ' )

tml = eson  . ead()

r nt html

2 1.3应用pthn伪装成浏览器自动登陆世纪佳缘网,加入变量打开多个网页。

有了源代码就可以进行数据的爬取了,但是因为世纪佳缘网近日进行了改版简单的爬虫程序已经无法在对其进行全网页的爬取工作了所以,在获取数据之前,需要对爬虫进行一下伪装,使其成为一个浏览器 以实现全网页的爬取工作。

应用 ene 和h  er的基础知识即可实现伪装成浏览器这一步骤。在

伪装的同时需要加入变量来打开多个网页,是的爬取工作可以顺利进行。代码如下:

 =0 w  013 hil  3012<w<99  9   =w+  k=str(w) logic = cokie   .Cook  Jar ) opener=urllib2. uild_oe r(r  ib2.HTT  ie oce  or(  j) )opener adh der = [ (' er-agen ' ,  Mzil  a4 0 copt  le; MS E 6.   Windos NT 5. 1 ' )   data u ll  .u  lencode( {"am ":"8340549  q.  m  "passwor": b be  2  }   pen .open lo npage ataop=o    .oen(()

2. 4用正则表达式分析网页源代码

正则表达式是用于处理字符串的强大工具,它并不是yh 的一部分。其他编程语言中也有正则表达式的概念,区别只在于不同的编程语言实现支持的语法数量不同。它拥有自己独特的语法以及一个独立的处理引擎,在提供了正则表达式的语言里,正则表达式的语法都是一样的。

下图为使用正则表达式进行匹配的流程

正则表达式的大致匹配过程是:

1.依次拿出表达式和文本中的字符比较,

2.如果每一个字符都能匹配,则匹配成功一旦有匹配不成功的字符则匹配失败。

3.如果表达式中有量词或边界,这个过程会稍微有一些不同。

   n是通过re模块实现对正则表达式的调用的。程序代码如下:fid_  =r . ompile  " bslute.+? pan.*?</+?&g ;&gt</a>   * )</h >.+ />(. ?)</s.?/b   *?)</   +/b>(.* )</p ?</b>(.*?)sp.+?/>",   .DTL)

. 存储方案

2.2 1储存在ec l表格中

Exc l表格具有方便筛选、查找和编辑的特点,所以将网络爬虫爬取的数据储存在exce表格中是首选。

使用pyton建立xcel表格是十分容易代码如下

= xlw .Wrbok )she t = ( ae' 

建立完成后可将数据写入ecel表格fr  in 

 sh  et.w ite(r,  ,a    .d  code("ut  " )seet  i  e(r,   a[1 .  cd (  tf-8") ) heet.w ite(r,    [  ] .d cd ("ut -  ) ) seet rit   ,   a 3 .dc   "ut -") ) ee  .writ  (r,4 a[4] . eoe("utf-8") )shet.w  te( , ,  [  . ecoe "uf-8") )r=r+ print +301 

(' test3    ' 

. . 储存在数据库中

数据库指的是以一定方式储存在一起、能为多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。将数据储存在数据库中也具有直观简洁的特点。

Pyh 调用数据库是用pyog模块,创建与导入代码如下d = pym  o.Connecti  ) .    for a   :v lues=di   ( mg=a[0]  decd "t -8") , infora[1] .de   de(  u   -8")  ae=a[2 .decod "utf-8") ,are      .decode("ut "mrry=a 4]  decde(  t -8")

)  d.u r ins rt  {'values  au s )

on  t   us r f  d(     a n :pr  nt  img:  +a[0  .decod  (  ut  -8"  p n  inor   [1 d  de( utf-8")print 'a  : '+a[2  d  cod   "u  -  "  pr nt ' dess  +a   deco  "ut -8  ) prit 'mr  '+a[] .d od ("tf-8"

3、总结

本程序利用了p  on语言编写网络爬虫程序实现了从世纪佳缘网上爬取用户数据资料使用u  lib函数以及r模块、 ymong模块进行源代码的获取、编辑和数据的导出,并针对网页代码中无性别显示的问题,采取爬取注册用户信息同时爬取注册用户照片地址的方式解决浏览所爬取信息时只需将照片地址输入浏览器地址栏 即可得到所查看用户上传的自拍照,得到形象信息。总的来说程序设计简便、实用性强、便于读取和再利用。

4、附录

. 1将爬取数据储存在excel表格

4 1. 1 源代码

#cod  g=gbi  rt r impor    w  imp  rt  ook  e  ib  orturll  ,urllib

xlwt.Worbo  ()sh et = ('name'  f nre=re.cmp  l  (  "aso ute +?span>(.* )</.?&t;&gt;/a>(.* )/2>.?/b>.?)/s.+/b>.?)</s.+?</b>( *?)<sp.+?</b>(.*?)<sp +?<b", r .DOTALL)   rw=013 while 30 <999: w=1 st  w)log n_p   = ""  j = ook  li.C  i   r(

pe r=rl  ib  uil_opener(u l  ib.HTPookieProes  r(  j) ) op  r.addhaer = [ (  s rg t , '  illa/4  comp tib  e;    6 0; Winows NT

5 1)  ) ] data = ur lib r ecde( {"name  :"834 496@q.cm",  assord":  beb  12"  opene  .op logi=op.rea )x=finre.finall (html) frain x:  heetw ite    ,    .decod ("tf-8"  seet.w i  e( , 1,a 1] .d ode "u 8  ) )

 he  t.  ite(r,2,  [   .decode(  ut  -8")   ee   wri  e    ,a[3] .decod "uf-8" )

 ee  .rite(r,4,a[4] .   code("ut  -  "  ) heet.writ  (r,5,a[ ] .d coe(  utf " ) rr+1rint +3012 (' te  t3. l  ' )

4. 1.  爬取数据汇总截图

4.2将爬取数据写入数据库

4.   1 源代码

#odig=gbk mport r l i impor  e mp   ymogodb = pmogo.onec  io )  te   f idr = e.cmpiler"abso  t  .+ spn>(* )/.?gt;g ;</>.*?</h>.+/b( ?)</ +?<b>(.* ) s+?</>(.* )/sp?b ,r .DOTALL)    w=11 wh le   <w<    w=1k t  ()pageu  l  b r  open(   =    h_v2_indx")  ml=p    ea (

 x=f nd_r .find ll (tl)  for a n x:valu sdic  ( im=a[0]  de ode("utf- "  ,  nfora[1  .  eco  e("utf-8"  ,gea[2] .     e("tf-8" , are  s=a[3 .de o  ("utf-8   , marry= [4] .dec e "  -8")

  db. s    ise t('v lu s :value } )   nten  =  b.u  er.find() or a in x  p  int ' im : '+ [0] .dcde  uf8")prin  '  nfr: 'a[1 .de  oe("utf8")print  ae: ' [2 .decode "uf-8  ) pr nt dress 'a 3] . eco  ("tf-"  prit 'ry: 'a 4] .dco  ("tf-8  )

4    爬取数据汇总截图

参考文献

1 Gu do v  rs um 《Py o手册》

2 Manus L e H  lar 《 thon基础教程》

3罗刚,王振东 《自己动手写网络爬虫》

宝塔面板批量设置站点404页面

今天遇到一个网友,他在一个服务器中搭建有十几个网站,但是他之前都是采集站点数据很大,但是现在他删除数据之后希望设置可能有索引的文章给予404跳转页面。虽然他程序有默认的404页面,但是达不到他引流的目的,他希望设置统一的404页面。实际上设置还是很简单的,我们找到他是Nginx还是Apache,直接在引擎配置文件中设置即可。这里有看到他采用的是宝塔面板,直接在他的Nginx中设置。这里我们找到当前...

bgpto:独立服务器夏季促销,日本机器6.5折、新加坡7.5折,20M带宽,低至$93/月

bgp.to对日本机房、新加坡机房的独立服务器在搞特价促销,日本独立服务器低至6.5折优惠,新加坡独立服务器低至7.5折优惠,所有优惠都是循环的,终身不涨价。服务器不限制流量,支持升级带宽,免费支持Linux和Windows server中文版(还包括Windows 10). 特色:自动部署,无需人工干预,用户可以在后台自己重装系统、重启、关机等操作!官方网站:https://www.bgp.to...

VoLLcloud:超便宜香港CMI大带宽vps-三网CMI直连-年付四免服务-低至4刀/月-奈飞

vollcloud LLC创立于2020年,是一家以互联网基础业务服务为主的 技术型企业,运营全球数据中心业务。致力于全球服务器租用、托管及云计算、DDOS安 全防护、数据实时存储、 高防服务器加速、域名、智能高防服务器、网络安全服务解决方案等领域的智 能化、规范化的体验服务。所有购买年付产品免费更换香港原生IP(支持解锁奈飞),商家承诺,支持3天内无条件退款(原路退回)!点击进入:vollclo...

爬虫代理为你推荐
apple.com.cn苹果官网怎么序列号查询激活时间phpweb破解宽带无线网是WPAPSK会被破解吗phpweb破解如何破解网络锁字节跳动回应TikTok易主贾斯汀比伯的confident他在mv女主说了什么,大神回复,采纳360arp防火墙在哪arp防火墙在哪开额- -360里是哪个?netshwinsockreset游戏出现battlEye Launcher 怎么办ipad代理如何贷款买IPADfilezilla_serverFileZilla无法连接服务器怎么解决面板flash资费标准中国电信套餐资费一览表2021
主机域名 域名转让 vir 美元争夺战 香港主机 香港托管 68.168.16.150 suspended 免费cdn加速 免费网站监控 ixwebhosting windows2003iso 主机合租 一元域名 免费ftp站点 爱奇艺vip免费试用7天 hktv 怎么建立邮箱 google台湾 阿里云官方网站 更多