ImageVerifierCode 换一换
格式:PPTX , 页数:24 ,大小:91.06KB ,
文档编号:3371838      下载积分:22 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-3371838.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

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

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(三亚风情)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(Python爬虫程序设计KC31.pptx)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

Python爬虫程序设计KC31.pptx

1、3.1.1 Web服务器网站服务器网站一个网站往往由很多相互关联的网页组成,每个网页上都可能包含我们锁要关心的数据,那么我们怎么样获取这些数据呢?显然我们必须穿梭于各个网页之间,那么按什么样的规则穿梭呢?常用的有深度优先与广度优先方法。为了说明这两种方法的工作过程,我们特意设计一个简单的网站。3.1.1 Web服务器网站服务器网站我们设计好books.htm,program.htm,database.htm,netwwork.htm,mysql.htm,java.htm,python.htm等网页文件以utf-8的编码存储在文件夹(例如c:web)中,各个文件的内容如下:(1)books.ht

2、m计算机数据库程序设计计算机网络(2)database.htm数据库MySQL数据库(3)program.htm程序设计Python程序设计Java程序设计(4)network.htm计算机网络(5)mysql.htmMySQL数据库(6)python.htmPython程序设计(7)java.htmJava程序设计import flaskimport osapp=flask.Flask(_name_)def getFile(fileName):data=b if os.path.exists(fileName):fobj=open(fileName,rb)data=fobj.read()fo

3、bj.close()return data app.route(/)def index():return getFile(books.htm)app.route(/)def process(section):data=if section!=:data=getFile(section)return data if _name_=_main_:app.run()3.1.2 递归程序爬取数据递归程序爬取数据3.1.2 递归程序爬取数据递归程序爬取数据现在我们来设计一个客户端程序client.py爬取这个网站各个网页的的标题值,设计的思想如下:(1)从books.htm出发;(2)访问一个网页,获取

4、标题;(3)获取这个网页中所有超级链接的href值形成links列表;(4)循环links列表,对于每个链接link都指向另外一个网页,递归回到(2);(5)继续links的下一个link,直到遍历所有link为止;from bs4 import BeautifulSoupimport urllib.request def spider(url):try:data=urllib.request.urlopen(url)data=data.read()data=data.decode()soup=BeautifulSoup(data,lxml)print(soup.find(h3).text)l

5、inks=soup.select(a)for link in links:href=linkhref url=start_url+/+href#print(url)spider(url)except Exception as err:print(err)start_url=http:/127.0.0.1:5000spider(start_url)print(The End)执行的结果如下:计算机数据库MySQL数据库程序设计Python程序设计Java程序设计计算机网络The End如果读者对数据结构熟悉,很显然程序在使用深度优先遍历这棵树,实际上这种递归程序都是采用深度优先的方法遍历树。3.

6、1.3 深度优先爬取数据深度优先爬取数据如果我们不使用递归程序实现深度优先的顺序爬取网站数据,也可以设计一个栈Stack来完成。在Python中实现一个栈十分简单,Python中的列表list就是一个栈,很容易设计自己的一个栈Stack类:class Stack:def _init_(self):self.st=def pop(self):return self.st.pop()def push(self,obj):self.st.append(obj)def empty(self):return len(self.st)=0其中push是压栈函数、pop是出栈函数、empty判断栈是否为空。

7、设计深度优先的顺序爬取数据的客户端程序色的思想如下:(1)第一个url入栈;(2)如果栈为空程序结束,如不为空出栈一个url,爬取它的标题值;(3)获取url站点的所有超级链接的href值,组成链接列表links,把这些链接全部压栈;(4)回到(2)程序结果:计算机数据库MySQL数据库程序设计Python程序设计Java程序设计计算机网络The End3.1.3 深度优先爬取数据深度优先爬取数据3.1.3 深度优先爬取数据深度优先爬取数据如果我们不使用递归程序实现深度优先的顺序爬取网站数据,也可以设计一个栈Stack来完成。在Python中实现一个栈十分简单,Python中的列表list就是

8、一个栈,很容易设计自己的一个栈Stack类:class Stack:def _init_(self):self.st=def pop(self):return self.st.pop()def push(self,obj):self.st.append(obj)def empty(self):return len(self.st)=0其中push是压栈函数、pop是出栈函数、empty判断栈是否为空。设计深度优先的顺序爬取数据的客户端程序色的思想如下:(1)第一个url入栈;(2)如果栈为空程序结束,如不为空出栈一个url,爬取它的标题值;(3)获取url站点的所有超级链接的href值,组成链

9、接列表links,把这些链接全部压栈;(4)回到(2)程序结果:计算机数据库MySQL数据库程序设计Python程序设计Java程序设计计算机网络The End3.1.4 广度优先爬取数据广度优先爬取数据3.1.4 广度优先爬取数据广度优先爬取数据遍历网站树还有一种广度优先的顺序,这要使用到队列,在Python中实现一个队列十分简单,Python中的列表list就是一个队列,很容易设计自己的一个队列Queue类:class Queue:def _init_(self):self.st=def fetch(self):return self.st.pop(0)def enter(self,obj

10、):self.st.append(obj)def empty(self):return len(self.st)=0其中enter是入列函数、fetch是出列函数、empty判断列是否为空。设计广度优先的顺序爬取数据的客户端程序的思想如下:(1)第一个url入列;(2)如果列空程序结束,如不为空出列一个url,爬取它的标题值;(3)获取url站点的所有超级链接的href值,组成链接列表links,把这些链接全部入栈;(4)回到(2)client.py程序如下:from bs4 import BeautifulSoupimport urllib.request class Queue:def _

11、init_(self):self.st=def fetch(self):return self.st.pop(0)def enter(self,obj):self.st.append(obj)def empty(self):return len(self.st)=0 def spider(url):queue=Queue()queue.enter(url)while not queue.empty():url=queue.fetch()try:data=urllib.request.urlopen(url)data=data.read()data=data.decode()soup=BeautifulSoup(data,lxml)print(soup.find(h3).text)links=soup.select(a)for link in links:href=linkhref url=start_url+/+href queue.enter(url)except Exception as err:print(err)start_url=http:/127.0.0.1:5000spider(start_url)print(The End)程序结果:计算机数据库程序设计计算机网络MySQL数据库Python程序设计Java程序设计The End

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|