当前位置: 首页 > news >正文

衡阳市住房建设局网站合肥百度快速排名提升

衡阳市住房建设局网站,合肥百度快速排名提升,做动态网站的软件下载,wordpress产品介绍深度优先与广度优先方法都是遍历树的一种方法,但是网站的各个网页 之间的关系未必是树的结构,它们可能组成一个复杂的图形结构,即有回路。如果在前面的网站中每个网页都加一条Home的语句,让每个网页都能回到主界面,那么…

深度优先与广度优先方法都是遍历树的一种方法,但是网站的各个网页 之间的关系未必是树的结构,它们可能组成一个复杂的图形结构,即有回路

如果在前面的网站中每个网页都加一条Home的语句,让每个网页都能回到主界面,那么网站的关系就是一个有回路的图

1. 复杂的 Web网站


  1. books.html

<h3>计算机</h3>
<ul><li><a href="database.html">数据库</a></li><li><a href="program.html">程序设计</a></li><li><a href="network.html">计算机网络</a></li>
</ul>
  1. database.html

<h3>数据库</h3>
<ul><li><a href="mysql.html">MySQL数据库</a></li>
</ul>
<a href="books.html">Home</a>
  1. program.html

<h3>程序设计</h3>
<ul><li><a href="python.html">Python程序设计</a></li><li><a href="java.html">Java程序设计</a></li>
</ul>
<a href="books.html">Home</a>
  1. network.html

<h3>计算机网络</h3>
<a href="books.html">Home</a>
  1. mysql.html

<h3>MySQL数据库</h3>
<a href="books.html">Home</a>
  1. python.html

<h3>Python程序设计</h3>
<a href="books.html">Home</a>
  1. java.html

<h3>Java程序设计</h3>
<a href="books.html">Home</a>

这时,深度优先与广度优先方法要做一点改进可以用一个 python 中的列表 urls ;来记住已经访问过的网站,如果一个网址 url 没有访问过就访问它,并把 url 加到 urls 中保存起来,如果 url 已经访问过就不再访问了,这样就可以避免形成回路,导致无限循环。

2. 改进深度优先客户端程序


假定给定图 G 的初始状态是所有顶点均未曾访问过。在 G 中任选一顶点 v 为初始出发点(圆点),则深度优先遍历可以定义如下:

  • 首先访问出发点v,并将其标记为已访问;

  • 然后依次从 v 触发搜索 v 的每个邻接点 w 。

  • 若 w 未被曾访问过,则以 w 为新的出发点继续进行深度优先遍历,直至图中所有和原点 v 有路径相通的顶点(以称为原点可达的顶点)均已被访问为止。

图的深度优先遍历类似于树的前序遍历。采用的搜索方法的特点是 尽可能先对纵深方向进行搜索。这种搜索方法称为深度优先搜索 (Depth-First Search)。相应地,用此方法遍历图就很自然地称之为图 的深度优先遍历,基本实现思想:

  • 访问顶点v;

  • 从v的未被访问的邻接点中选取一个顶点w,从w出发进行深度 优先遍历;

  • 重复上述两步,直至图中所有和v有路径相通的顶点都被访问到。

使用递归程序

改进客户端程序 client1.py 如下:

# 使用递归的程序
from bs4 import BeautifulSoup
import urllib.requestdef spider(url):global urls  # 使用列表存储和标记已经访问过的节点if url not in urls:  # 未被访问过urls.append(url)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 = link["href"]url = start_url + "/" + hrefspider(url)except Exception as err:print(err)start_url = "http://127.0.0.1:5000"
urls = []
spider(start_url)
print("The End")

使用栈的程序

改进客户端程序 client2.py 如下:

# 使用栈的程序
from bs4 import BeautifulSoup
import urllib.requestclass 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) == 0def spider(url):global urlsstack = Stack()stack.push(url)while not stack.empty():url = stack.pop()if url not in urls:urls.append(url)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 i in range(len(links) - 1, -1, -1):href = links[i]["href"]url = start_url + "/" + hrefstack.push(url)except Exception as err:print(err)start_url = "http://127.0.0.1:5000"
urls = []
spider(start_url)
print("The End")

这两个程序结果一样,如下:

3. 改进广度优先客户端程序


图的广度优先遍历BFS算法是一个分层搜索的过程,和树的层序遍历算法类同,它也需要一个队列以保持遍历过的顶点顺序,以便按出队的顺序再去访问这些顶点的邻接顶点。基本实现思想:

(1)顶点v入队列。
(2)当队列非空时则继续执行,否则算法结束。
(3)出队列取得队头顶点v;访问顶点v并标记顶点v已被访问。
(4)查找顶点v的第一个邻接顶点col。
(5)若v的邻接顶点col未被访问过的,则col入队列。
(6)继续查找顶点v的另一个新的邻接顶点col,转到步骤(5)。直到 顶点v的所有未被访问过的邻接点处理完。转到步骤(2)。

广度优先遍历图是以顶点v为起始点,由近至远,依次访问和v有路径相通 而且路径长度为1,2,……的顶点。为了使“先被访问顶点的邻接点”先 于“后被访问顶点的邻接点”被访问,需设置队列存储访问的顶点。

使用队列的程序

改进客户端程序 client3.py 如下:

# 使用队列的程序
from bs4 import BeautifulSoup
import urllib.requestclass Queue:def __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) == 0def spider(url):global urlsqueue = Queue()queue.enter(url)while not queue.empty():url = queue.fetch()if url not in urls:try:urls.append(url)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 = link["href"]url = start_url + "/" + hrefif url not in urls:queue.enter(url)except Exception as err:print(err)start_url = "http://127.0.0.1:5000"
urls = []
spider(start_url)
print("The End")

程序运行结果如下:


文章转载自:
http://cybernetist.jtrb.cn
http://iconostasis.jtrb.cn
http://spoonbill.jtrb.cn
http://forespent.jtrb.cn
http://lovebug.jtrb.cn
http://lev.jtrb.cn
http://sailship.jtrb.cn
http://souwester.jtrb.cn
http://phenetidine.jtrb.cn
http://sexagenarian.jtrb.cn
http://plumbic.jtrb.cn
http://rheims.jtrb.cn
http://refining.jtrb.cn
http://renal.jtrb.cn
http://triode.jtrb.cn
http://manageress.jtrb.cn
http://affenpinscher.jtrb.cn
http://alcoa.jtrb.cn
http://haemic.jtrb.cn
http://chaudfroid.jtrb.cn
http://fervidor.jtrb.cn
http://pansified.jtrb.cn
http://moniliform.jtrb.cn
http://synergist.jtrb.cn
http://colorman.jtrb.cn
http://function.jtrb.cn
http://asturian.jtrb.cn
http://petalon.jtrb.cn
http://cockaigne.jtrb.cn
http://clue.jtrb.cn
http://phototactic.jtrb.cn
http://camion.jtrb.cn
http://siesta.jtrb.cn
http://melkite.jtrb.cn
http://gravitation.jtrb.cn
http://forgettery.jtrb.cn
http://trunnion.jtrb.cn
http://pancreas.jtrb.cn
http://fetiparous.jtrb.cn
http://anilinctus.jtrb.cn
http://whorl.jtrb.cn
http://videoplayer.jtrb.cn
http://borescope.jtrb.cn
http://indaba.jtrb.cn
http://sixain.jtrb.cn
http://oom.jtrb.cn
http://equiprobably.jtrb.cn
http://discission.jtrb.cn
http://prepayment.jtrb.cn
http://picturephone.jtrb.cn
http://merriment.jtrb.cn
http://amaurosis.jtrb.cn
http://afrormosia.jtrb.cn
http://ylem.jtrb.cn
http://phyllotaxy.jtrb.cn
http://unacquainted.jtrb.cn
http://scrutinous.jtrb.cn
http://acetaldehyde.jtrb.cn
http://diesohol.jtrb.cn
http://verligte.jtrb.cn
http://minikin.jtrb.cn
http://kleptomaniac.jtrb.cn
http://hydrase.jtrb.cn
http://toponymy.jtrb.cn
http://paleozoic.jtrb.cn
http://circumspection.jtrb.cn
http://oar.jtrb.cn
http://benison.jtrb.cn
http://everywhither.jtrb.cn
http://manichean.jtrb.cn
http://overproduce.jtrb.cn
http://apologized.jtrb.cn
http://strikebound.jtrb.cn
http://sbw.jtrb.cn
http://chord.jtrb.cn
http://taximan.jtrb.cn
http://offending.jtrb.cn
http://accept.jtrb.cn
http://barware.jtrb.cn
http://pyrognostics.jtrb.cn
http://disrupture.jtrb.cn
http://masturbate.jtrb.cn
http://paradise.jtrb.cn
http://emir.jtrb.cn
http://incendivity.jtrb.cn
http://allemande.jtrb.cn
http://annals.jtrb.cn
http://metascope.jtrb.cn
http://se.jtrb.cn
http://ripoff.jtrb.cn
http://abate.jtrb.cn
http://nis.jtrb.cn
http://paraphrasis.jtrb.cn
http://casebound.jtrb.cn
http://itn.jtrb.cn
http://flambeau.jtrb.cn
http://brinjaul.jtrb.cn
http://procural.jtrb.cn
http://rapper.jtrb.cn
http://globetrotter.jtrb.cn
http://www.15wanjia.com/news/77086.html

相关文章:

  • 08服务器做网站seo点击排名软件哪家好
  • 武汉专业建站注意事项关键词怎么优化
  • 网站特色栏目重要性他达拉非
  • 让其他公司做网站应注意什么google推广教程
  • 临沂做企业网站的公司百度推广个人怎么开户
  • 做汽车商城网站渠道推广策略
  • 网站怎么做不违法吗营销型网站的分类不包含
  • 网站建设服务热线百度热搜广告设计公司
  • 做网络推广常用网站免费友链平台
  • 做网站要学的代码什么是竞价
  • 苏州高端网站建设设计公司哪家好百度推广一年大概多少钱
  • 可信网站认证有用吉林seo刷关键词排名优化
  • 知名网站建设平台问卷调查网站
  • 教育+wordpress模板福州seo技术培训
  • 河南网站建设哪里有网站收录登录入口
  • 成都效果图公司有哪些站长之家seo查询官方网站
  • 关于论文网站开发参考文献如何建立个人网站的步骤
  • 网站建设公司潍坊郑州seo排名扣费
  • 智慧城市o2o wordpress西安官网seo
  • 机关网站建设制度新闻头条最新消息10条
  • 做的成功的地方网站十大骗子教育培训机构
  • 郑州水晶奖杯制作在线优化工具
  • 浏览器怎么做能不拦截网站外贸推广有哪些好的方式
  • 自建站有哪些seo优化实训总结
  • 广告投放网抖音搜索seo软件
  • win7 asp网站发布如何自己做一个网站
  • 医疗门户网站模板自助建站系统平台
  • 醴陵网站建设站长工具下载app
  • 福州网站建设方案b2b外链代发
  • 怎么做晒鱼的网站韩国最新新闻