Robots.txt是一个小文本文件,位于网站的根目录中。它告诉抓取工具是否要抓取网站的某些部分。该文件使用简陋的语法,以便爬虫可以放置到位。写得好,你将在索引天堂。写得不好,最终可能会从搜索引擎中隐蔽整个网站,该文件没有官方标准。但你可以使用robots.txt做更多的工作,而不是网站大纲,比如使用通配符,站点地图链接,和“Allow”指令,所有主要搜索引擎都支持这些 扩展。在一个完美的世界里,没有人需要robots.txt。如果网站上的所有页面都是供公众使用的,那么志愿情况下,应该答应搜索引擎抓取所有页面。但我们并不是生活在一个完美的世界里。许多站点都有蜘蛛陷阱,规范URL问题以及需要远离搜索引擎的非公共页面,而Robots.txt用于使您的网站更接近完美。Robots.txt如何工作如果你已经熟悉了robots.txt的指令,但担心你做错了,请跳到常见错误部分。如果你是新手,请继续阅读 。可以使用任何纯文本编辑器制作robots.txt文件,但它必须位于站点的根目录中,并且必须命名为“robots.txt”,您不能在子目录中使用该文件。如果域名是example.com,则robots.txt网址应为:http://example.com/robots.txtHTTP规范将“user-agent”定义为发送请求的东西(与接收请求的“服务器”相对)。严格来说,用户代理可以是请求网页的任何内容,包括搜索引擎抓取工具,Web浏览器或朦胧的命令行 实用程序。用户代理指令在robots.txt文件中,user-agent指令用于指定哪个爬网程序应遵守给定的规则集。该指令可以是通配符,用于指定规则适用于所有爬网程序:User-agent: *或者它可以是特定爬虫的名称:User-agent:Googlebot制止指令您应该通过一个或多个disallow 指令来遵循用户代理行 :User-agent:* Disallow:/ junk-page上面的示例将阻挠路径以“/ junk-page”开头的所有URL :http://example.com/junk-page http://example.com/junk-page?usefulness=0 http://example.com/junk-page/whatever 它不会阻挠任何路径不以“/ junk-page”开头的URL 。以下网址不会被 阻挠:http://example.com/subdir/junk-page这里的关键是disallow是一个简陋的文本匹配。无论“Disallow:”之后呈现什么都被视为一个简陋的字符串(除了*和$之外,我将在下面提到)。将此字符串与URL的路径部分的开头(从域之后的首先个斜杠到URL的末尾的所有内容)进行比较,该字符串也被视为简陋字符串。如果匹配,则会阻挠该URL。如果他们不这样做,那就 不是。答应指令Allow指令不是原始标准的一部分,但现在所有主要搜索引擎都支持它。您可以使用此伪指令指定制止规则的例外,例如,如果您有一个要阻挠的子目录,但渴望抓取该子目录中的一个页面:User-agent:* Allow:/ nothing-good-in-here / except-this-one-page Disallow:/ nothing-good-in-here /此示例将阻挠以下 URL:http://example.com/nothing-good-in-here/ http://example.com/nothing-good-in-here/somepage http://example.com/nothing-good-in-here/otherpage http://example.com/nothing-good-in-here/?x=y但它不会阻挠以下任何一种情况:http://example.com/nothing-good-in-here/except-this-one-page http://example.com/nothing-good-in-here/except-this-one-page-because-i -said-so http://example.com/nothing-good-in-here/except-this-one-page/that-is-really-a-directory 同样,这是一个简陋的文本匹配。将“Allow:”之后的文本与URL的路径部分的开头进行比较。如果它们匹配,即使在通常阻挠它的其他地方制止该页面,也将答应该页面。通配符所有主要搜索引擎也支持通配符计算符。这答应您在路径的一部分未知或可变时阻挠页面。对于 例如:Disallow:/ users / * / settings*(星号)表示“匹配任何文本。”上述指令将阻挠以下所有 URL:http://example.com/users/alice/settings http://example.com/users/bob/settings http://example.com/users/tinkerbell/settings 小心!以上还将阻挠以下URL(可能不是您想要的):http://example.com/users/alice/extra/directory/levels/settings http://example.com/users/alice/search?q=/settings 字符串结束计算符另一个有用的扩展是字符串结尾计算符:Disallow:/ useless-page $$表示URL必须在该点结束,该指令将阻挠以下 URL:http://example.com/useless-page但它不会阻挠 以下任何一种情况:http://example.com/useless-pages-and-how-to-avoid-creating-them http://example.com/useless-page/ http://example.com/useless-page?a=b阻挠一切您可能渴望使用robots.txt阻挠所有暂存站点(稍后会详细介绍)或镜像站点。如果您有一个私人网站供少数知道如何找到它的人使用,那么您还渴望阻挠整个网站被抓取。要阻挠整个站点,请使用制止后跟斜杠:User-agent:* Disallow:/答应一切当您计划答应 所有内容时,我可以想到您可能抉择创建robots.txt文件的两个原因:作为占位符,要向在网站上工作的任何其他人明确表示您答应一切都是有意的。防止对robots.txt的请求失败,以显示在请求日志中。要答应整个站点,您可以使用空的禁令:User-agent:* Disallow:或者,您可以将robots.txt文件留空,或者根本没有。爬行者会抓取所有内容,除非你告诉他们不要 。Sitemap 指令虽然它是可选的,但许多robots.txt文件都包含一个sitemap 指令:网站地图:http://example.com/sitemap.xml这指定了站点地图文件的位置。站点地图是一种特别格式的文件,列出了您要抓取的所有网址。如果您的站点具有XML网站地图,则最好包含此指令。使用 Robots.txt的常见错误我看到很多很多不正确的robots.txt用法。其中最严重的是尝试使用该文件保密某些目录或尝试使用它来阻挠恶意爬虫。滥用robots.txt的最严重后果是意外地将您的整个网站隐蔽在抓取工具中。密切关注这些 事情。当你去制作时忘记隐蔽所有暂存站点(尚未隐蔽在密码后面)都应该包含robots.txt文件,因为它们不适合公众查看。但是当您的网站上线时,您会渴望每个人都能看到它。不要忘记删除或编辑此 文件。否则,整个实时网站将从搜索结果中消逝。User-agent:* Disallow:/您可以在测试时检查实时robots.txt文件,或进行设置,这样您就不必记住这一额外步骤。使用摘要式身份验证等简陋协议将登台服务器置于密码之后。然后,您可以为登台服务器提供您打算在实际站点上部署的相同robots.txt文件。部署时,只需复制所有内容即可。试图阻挠敌对爬虫我见过robots.txt文件试图明确阻挠已知的恶意抓取程序,如下所示:User-agent:DataCha0s / 2.0 Disallow:/ User-agent:ExtractorPro Disallow:/ User-agent:EmailSiphon Disallow:/ User-agent:EmailWolf 1.00 Disallow:/这就像在汽车外表板上留下一张纸条说:“亲爱的小偷:请不要偷这辆车。 谢谢!”这毫无意义。这就像在汽车外表板上留下一张纸条说:“亲爱的小偷:请不要偷这辆车。 谢谢!”Robots.txt完全是自愿的,像搜索引擎这样的礼貌爬虫会遵守它。敌意爬行器,如电子邮件收割机,不会。爬虫没有义务遵守robots.txt中的指南,但主要的抉择是这样做的。如果您正在尝试阻挠错误的抓取工具,请使用用户代理阻挠或IP阻挠 。试图维持目录的机密如果您要保留对公众隐蔽的文件或目录,请不要将它们全部列在robots.txt中,如下所示:User-agent:* Disallow:/ secret-stuff / Disallow:/compromising-photo.jpg Disallow:/big-list-of-plaintext-passwords.csv出于显而易见的原因,这将弊大于利。它为敌对爬虫提供了一种快速,简便的方法来查找您不渴望他们找到的文件 。这就像在你的车上留下一张纸条上写着:“亲爱的小偷:请不要看着隐蔽在这辆车的杂物箱中的标有’紧急现金’的黄色信封。 谢谢!”维持目录隐蔽的唯一可靠方法是将其置于密码之后。如果你绝对不能把它放在密码后面,这里有三个创可贴解决方案。1.基于目录名称的前几个字符进行阻挠。 如果目录是“/ xyz-secret-stuff /”,则将其阻塞如下:Disallow:/ xyz-2.阻挠机器人元标记 将以下内容添加到HTML代码中:3.使用X-Robots-Tag标头阻挠。 将这样的内容添加到目录的.htaccess文件中:标题集X-Robots-Tag“noindex,nofollow”同样,这些是创可贴解决方案,这些都不是实际安全的替代品。如果确实需要保密,那么它确实需要在密码后面。意外阻挠不相关的页面假设您需要阻挠该 页面:http://example.com/admin还有 目录中的所有内容:http://example.com/admin/显而易见的方法是这样做 :Disallow:/ admin这会阻挠你想要的东西,但现在你也不小心阻挠了关于宠物护理的文章页面:http://example.com/administer-medication-to-your-cat-the-easy-way.html本文将与您实际尝试 阻挠的页面一起从搜索结果中消逝。是的,这是一个人为的例子,但我已经看到这种事情发生在现实世界中。最糟糕的是,它通常会被忽视很长一段时间。阻挠/ admin和/ admin /而不阻塞任何其他内容的最安全方法是使用两个单独的行:Disallow:/ admin $ Disallow:/ admin /请记住,美元符号是一个字符串结尾的计算符,表示“URL必须在此处结束。”该指令将匹配/ admin但不匹配 /治理。试图将robots.txt放在子目录中假设您只能控制一个巨大网站的一个子目录。http://example.com/userpages/yourname/如果您需要阻挠某些页面,可能会尝试添加robots.txt文件,如下所示:http://example.com/userpages/yourname/robots.txt这不起作用,该文件将被忽略。您可以放置robots.txt文件的唯一位置是站点根目录。如果您无权访问站点根目录,则无法使用robots.txt。一些替代选项是使用机器人元标记来阻挠页面。或者,如果您可以控制.htaccess文件(或等效文件),则还可以使用X-Robots-Tag标头阻挠页面。尝试定位特定的子域假设您有一个包含许多不同子域的站点:http://example.com/ http://admin.example.com/ http://members.example.com/ http://blog.example.com/ http://store.example.com/您可能想要创建单个robots.txt文件,然后尝试阻挠它的子域,如下所示:http://example.com/robots.txt User-agent:* Disallow:admin.example.com Disallow:members.example.com这不起作用,无法在robots.txt文件中指定子域(或域)。给定的robots.txt文件仅适用于从中加载的子域 。那么有没有办法阻挠某些子域?是。要阻挠某些子域而不阻挠其他子域,您需要提供来自不同子域的不同robots.txt文件。这些robots.txt文件会阻挠所有内容:http://admin.example.com/robots.txt http://members.example.com/robots.txt User-agent:* Disallow:/这些将答应一切:http://example.com/ http://blog.example.com/ http://store.example.com/ User-agent:* Disallow:使用不一致的类型情况路径区分大小写。Disallow:/ acme /不会阻挠“/ Acme /”或 “/ ACME /”。如果你需要全部阻挠它们,你需要为每个禁用一行:Disallow:/ acme / Disallow:/ Acme / Disallow:/ ACME /忘记了用户代理线所述用户代理线是使用robots.txt关键的。在任何答应或制止之前,文件必须具有用户代理行。如果整个文件看起来像这样:Disallow:/ this Disallow:/ that Disallow:/ what实际上什么都不会被阻挠,因为顶部没有用户代理行。该文件必须为:User-agent:* Disallow:/ this Disallow:/ that Disallow:/ whatever其他用户代理陷阱使用不正确的用户代理还存在其他缺陷。假设您有三个目录需要为所有抓取工具阻挠,还有一个页面应该仅在Google上明确答应。显而易见(但不正确)的方法可能是尝试这样的事情 :User-agent:* Disallow:/ admin / Disallow:/ private / Disallow:/ dontcrawl / User-agent:Googlebot Allow:/ dontcrawl / exception此文件实际上答应Google抓取网站上的所有内容。Googlebot(以及大多数其他抓取工具)只会遵守更具体的用户代理行下的规则,并会忽略所有其他规则。在此示例中,它将遵守“User-agent:Googlebot”下的规则,并将忽略“User-agent: *” 下的规则。要实现此目标,您需要为每个用户代理块重复相同的制止规则,如下所示:User-agent:* Disallow:/ admin / Disallow:/ private / Disallow:/ dontcrawl / User-agent:Googlebot Disallow:/ admin / Disallow:/ private / Disallow:/ dontcrawl / Allow:/ dontcrawl / exception忘记路径中的主要斜线假设您要阻挠该 URL:http://example.com/badpage你有以下(不正确的)robots.txt 文件:User-agent:* Disallow:错误页面这根本不会阻挠任何事情,路径必须以斜杠开头。如果没有,它永远不会匹配任何东西。阻挠URL的正确方法 是:User-agent:* Disallow:/ badpage使用 Robots.txt的提示既然您知道如何不将敌对抓取工具发送到您的机密内容或从搜索结果中消逝您的网站,这里有一些提示可以帮助您改进robots.txt文件。做得好不会提高你的排名(这是战略搜索引擎优化和内容的用途),但至少你会知道爬虫正在找到你想要他们找到的东西。竞争答应和不答应allow指令用于指定disallow规则的例外。disallow规则阻塞整个目录(例如),allow规则取消阻挠该目录中的某些URL。这提出了一个问题,如果给定的URL可以匹配两个规则中的任何一个,爬虫如何决定使用哪个?并非所有抓取工具都以完全相同的方式处理竞争答应和制止,但Google优先考虑路径较长的规则(就字符数而言)。如果两个路径长度相同,则allow优先于disallow。例如,假设robots.txt文件 是:User-agent:* Allow:/ baddir / goodpage Disallow:/ baddir /路径“/ baddir / goodpage”长度为16个字符,路径“/ baddir /”长度仅为8个字符。在这种情况下,答应胜过 不答应。将 答应以下URL :http://example.com/baddir/goodpage http://example.com/baddir/goodpagesarehardtofind http://example.com/baddir/goodpage?x=y以下内容将被 阻挠:http://example.com/baddir/ http://example.com/baddir/otherpage现在考虑以下示例:User-agent:* Aloow:/某些 Disallow:/ *页面这些指令会阻挠以下 URL吗?http://example.com/somepage是。路径“/ some”长度为5个字符,路径“/ * page”长度为6个字符,因此disallow获胜。答应被忽略,URL将被阻挠。阻挠特定的查询参数假设您要阻挠包含查询参数“id”的所有URL,例如 :http://example.com/somepage?id=123 http://example.com/somepage?a=b&id=123你可能想做这样的事情 :Disallow:/ * id =这将阻挠您想要的URL,但也会阻挠以 “id” 结尾的任何其他查询参数:http://example.com/users?userid=a0f3e8201b http://example.com/auction?num=9172&bid=1935.00那么如何在不阻挠“用户ID”或 “出价”的情况下阻挠“id ”?如果您知道“id”将始终是首先个参数,请使用问号,如下 所示:Disallow:/ *?id =该指令将阻挠:http://example.com/somepage?id=123但它不会阻挠:http://example.com/somepage?a=b&id=123如果您知道“id”永远不会是首先个参数,请使用&符号,如下 所示:Disallow:/ *&id =该指令将阻挠:http://example.com/somepage?a=b&id=123但它不会阻挠:http://example.com/somepage?id=123最安全的方法是 两者兼顾:Disallow:/ *?id = Disallow:/ *&id =没有可靠的方法来匹配两条线。阻挠包含不安全字符的URL假设您需要阻挠包含不安全URL的字符的URL,可能发生这种情况的一种常见情况是服务器端模板代码意外暴露给Web。对于 例如:http://example.com/search?q=<% var_name%>如果您尝试像这样阻挠该URL,它将无法 工作:User-agent:* Disallow:/ search?q = <%var_name%>如果您在Google的robots.txt测试工具(在Search Console中提供)中测试此指令,您会发现它不会阻挠该网址。为什么?因为该指令实际上是根据 URL 检查的:http://example.com/search?q=%3C%%20var_name%20%%3E所有Web 用户代理(包括抓取工具)都会自动对任何不符合URL安全的字符进行URL编码。这些字符包括:空格,小于或大于符号,单引号, 双引号和非ASCII 字符。阻挠包含不安全字符的URL的正确方法是阻挠转义版本:User-agent:* Disallow:/ search?q =%3C %% 20var_name%20 %% 3E获取URL的转义版本的最简陋方法是单击浏览器中的链接,然后从地址 字段中复制并粘贴URL 。如何匹配美元符号假设您要阻挠包含美元符号的所有网址,例如 :http://example.com/store?price=$10以下内容 不起作用:Disallow:/ * $该指令实际上会阻挠站点上的所有内容。当在指令末尾使用时,美元符号表示“URL在此处结束。”因此,上面将阻挠路径以斜杠开头的每个URL,后跟零个或多个字符,后跟URL的结尾。此规则适用于任何有效的URL。为了解决这个问题,诀窍是在美元符号后添加一个额外的星号,如下所示:Disallow:/ * $ *在这里,美元符号不再位于路径的尽头,因此它失去了它的特别含义。该指令将匹配包含文字美元符号的任何URL。请注意,最终星号的唯一目的是防止美元符号成为最后一个 字符。补充有趣的事实:谷歌在进行语义搜索的过程中,通常会正确地解释拼写错误或格式错误的指令。例如,Google会在没有投诉的情况下接受以下任何内容:UserAgent:* Disallow / this Dissalow:/ that这并不意味着你应该忽略指令的格式和拼写,但如果你确实犯了错误,谷歌通常会让你逃脱它。但是,其他爬虫可能 不会。人们经常在robots.txt文件中使用尾随通配符。这是无害的,但它也没用; 我认为这是糟糕的形式。对于例如:Disallow:/ somedir / *与以下内容完全相同 :Disallow:/ somedir /当我看到这个时,我想,“这个人不明白robots.txt是如何工作的。”我看到它很多。概要请记住,robots.txt必须位于根目录中,必须以用户代理行开头,不能阻挠恶意爬虫,也不应该用于保密目录。使用此文件的许多困惑源于人们期望它比它更复杂的事实。相关文章推举百度蜘蛛优化教程 你知道所有关于搜索引擎优化的方法,一个结构良好的网站,相关的关键词,适当的标签,算法标准和大量的内容,但是您可 […]...Google搜索引擎优化方案 为了协助您与世界竞争,并打磨您的搜索引擎优化技能,草根SEO带来了顶级的Google搜索引擎优化方案。 阶段一 […]...新站百度seo优化方案 2018年对于SEO而言相对安静,但是不管现在的SEO风景看起来多么和平,这并不意味着你可以靠在椅子上松弛一下 […]...【苏州seo培训】如何提高页面的搜索排名? 在开始页面搜索引擎优化之前,您需要做首先个事情是找到合适的关键词,抉择利基然后进行发掘以找到更多长尾关键词。 […]...有哪些SEO技术可以提高网站排名? SEO技术是整个SEO过程中非常重要的一步,如果您的搜索引擎优化技术存在问题,那么很可能您的搜索引擎优化工作不 […]...
许多网页设计师都在寻找为他们的网站设计增加重大影响的方法,以便他们能够吸引用户的注意力。多年来,从使用标题图形到在登录页面菜单下放置幻灯片,到成为完整的浏览器宽度,现在绝大多数网站都遵循相同的格式。 添加交互式元素确实可以吸引用户的注意力,并表明这与他们刚刚访问过的其他网站不同,它使一个网站比只有一个巨大的幻灯片和一些视差滚动更有趣。 01.添加初始变量从项目文件中打开开始文件夹,然后将其拖到代码编辑器中。打开’ index.html ‘,您将看到JavaScript库已经链接到您,在空脚本标签内部是代码所在的位置,在这里检测WebGL以确保可以运行项目,然后添加将在场景中使用的整个变量范畴。if (!Detector.webgl) Detector.addGetWebGLMessage();var SCREEN_WIDTH = window.innerWidth;var SCREEN_HEIGHT = window.innerHeight;var renderer, camera, scene, moverGroup, floorGeometry, floorMaterial, pointLight, pointLight2, pGeometry;var FLOOR_RES = 60;var FLOOR_HT = 650;var stepCount = 0;var noiseScale = 9.5;var noiseSeed = Math.random() * 100;02.创建更多变量下一个变量块处理水底应该有多大以及它与初始鼠标位置一起挪动的速度,屏幕的中心已经完成,改进的噪声库正在用于创建水面。var FLOOR_WIDTH = 3600;var FLOOR_DEPTH = 4800;var MOVE_SPD = 1.9;var mouseX = 0;var mouseY = 0;var windowHalfX = window.innerWidth / 2;var windowHalfY = window.innerHeight / 2;var snoise = new ImprovedNoise();var textureLoader = new THREE.TextureLoader();03.运算鼠标为场景的后期处理效果添加了一些最终变量,添加一个检查鼠标挪动的事件监听器,场景将在显示端口挪动以对鼠标挪动作出反应,此处添加的功能可运算出答应的挪动量。04.更改后期处理设置‘ params ‘功能是存储后处理效果的所有设置的地方,前四行中覆盖了倾斜移位朦胧,然后电影在其余行中通过,这主要是针对屏幕强度和噪声强度。05.设定最终参数最后一个参数是针对屏幕边缘的黑暗小插图,调用’ init ‘和’ animate ‘函数来运行。’ animate ‘函数将在本教程的后期创建,但是’ init ‘函数在这里创建。摄像机和场景设置为答应查看3D内容。 effectVignette.uniforms["offset"].value = 1.0; effectVignette.uniforms["darkness"].value = 1.3;}init();animate();function init() { camera = new THREE.PerspectiveCamera(70, window.innerWidth / window.innerHeight, 1, 4000); camera.position.z = 2750; scene = new THREE.Scene(); scene.fog = new THREE.FogExp2(0x1c3c4a, 0.00045);06.让光进去为了看到场景的内容,将放置四个灯,首先个是半球灯,用于获得场景的基本氛围,接下来是在场景中间添加浅蓝色光的中心灯,这是为了给整个场景提供一些亮光。var hemisphereLight = new THREE.HemisphereLight(0xe3feff, 0xe6ddc8, 0.7);scene.add(hemisphereLight);hemisphereLight.position.y = 300;var centerLight = new THREE.SpotLight(0xb7f9ff, 1);scene.add(centerLight);centerLight.position.set(2500, 300, 2000);centerLight.penumbra = 1;centerLight.decay = 5;07.动画灯接下来要添加两个灯,“ PointLight ”和“ PointLight2 ”是彩色灯光,它们会环绕场景以相反的方向旋转,以便灯光在视图中不断变化。首先种是粉红色光,第二种是橙色光。反射图像的路径和格式在最后两行中设置。pointLight = new THREE.PointLight(0xe07bff, 1.5);pointLight.position.z = 200;scene.add(pointLight);pointLight2 = new THREE.PointLight(0xff4e00, 1.2);pointLight2.position.z = 200;scene.add(pointLight2);var path = "img/";var format = '.jpg';08.有光泽的表面液体表面将具有反射的光泽表面,这通过创建反射立方体来完成。这是一个立方体,里面放有一个360度的天穹盒,它将被反射到液体表面。’ urls ‘数组包含要加载的图像,然后设置材质。09.成立一些小组挪动器组将包含稍后将添加的一些粒子,而地板组将包含液体的表面。将创建一个新的3D对象来保存该表面。将有两个液体表面; 一个将具有反射材料,第二个将具有线框’ floorMaterial ‘,如此处所定义。moverGroup = new THREE.Object3D();scene.add(moverGroup);var floorGroup = new THREE.Object3D();var floorMaterial = new THREE.MeshPhongMaterial({color: 0xeeeeee, side: THREE.DoubleSide, blending: THREE.AdditiveBlending, wireframe: true});floorGeometry = new THREE.PlaneGeometry(FLOOR_WIDTH + 1200, FLOOR_DEPTH, FLOOR_RES, FLOOR_RES);10.制作表面当添加首先个液体表面时,反射贴图非常明显,雾有助于将背景和表面混合在一起这两个液体表面在这里创建为’ floorMesh ‘和’ floorMesh2 ‘。它们被定位并放置在“ floorGroup ” 内,然后在相机前旋转到良好的视角。这不是直接平坦,而是略微倾斜,因为它看起来更好。var floorMesh = new THREE.Mesh(floorGeometry, cubeMaterial);var floorMesh2 = new THREE.Mesh(floorGeometry, floorMaterial);floorMesh2.position.y = 20;floorMesh2.position.z = 5;floorGroup.add(floorMesh);floorGroup.add(floorMesh2);scene.add(floorGroup);floorMesh.rotation.x = Math.PI / 1.65;floorMesh2.rotation.x = Math.PI / 1.65;floorGroup.position.y = 180;11.添加浮动颗粒浮动粒子填充场景,当所有这些都在渲染功能中进行动画处理时,它会带来对相机的挪动感这里的代码部分创建一个空的几何对象,然后将2,000个顶点放入其中作为粒子。它们分布在X,Y和Z轴上的随机位置。它们会漂浮在液体地板表面的正上方。pGeometry = new THREE.Geometry();sprite = textureLoader.load("img/sprite.png");for (i = 0; i < 2000; i++) { var vertex = new THREE.Vector3(); vertex.x = 4000 * Math.random() - 2000; vertex.y = -200 + Math.random() * 700; vertex.z = 5000 * Math.random() - 2000; pGeometry.vertices.push(vertex);}12.创建外观此处定义的材料将设置粒子的外观。在上一步中加载了图像,并在创建材质后将其用作每个粒子上的图像,然后将其应用于所有粒子的几何的每个点,然后将它们添加到场景中。13.添加徽标添加徽标(透明的PNG图像)将其放置在场景的中心,以后可以轻松替换为您自己的徽标。徽标将放置在屏幕中央,这将添加到面向相机的平面上,徽标略微透明,并添加添加剂混合物,以便在较轻的物体从后面通过时更加明显。这被定位并放置在场景中。sprite = textureLoader.load("img/logo.png");geometry = new THREE.PlaneBufferGeometry(500, 640, 1);material = new THREE.MeshLambertMaterial({ transparent: true, opacity: 0.8, blending: THREE.AdditiveBlending, map: sprite, side: THREE.DoubleSide});var plane = new THREE.Mesh(geometry, material);plane.position.set(0, 70, 1800);scene.add(plane);14.添加渲染设置渲染器设置为具有平滑的抗锯齿边缘,现在设置背景颜色。这将添加到文档正文中,以便场景位于HTML页面上,通过初始化各种渲染和着色器通道来设置后处理效果。15.传球一旦添加了胶片和毛刺传递,就会创建一个效果组合器,将所有传递组合在一起。这些将逐一添加到作曲家,最终将呈现给屏幕以供观众展现。16.关闭’init’功能最后几个设置被添加用于场景的初始化。设置后处理的参数,调用wave的设置,并在每次调整浏览器大小时添加事件监听器,这样可以更新显示以适应新尺寸。17.设置波浪现在为液体表面诞生波浪,这是通过在x和z轴上挪动地板几何体的每个顶点并在y轴上向上移动来完成的。在此阶段,为x和z轴创建“ for ”循环。function setWaves() { stepCount++; moverGroup.position.z = -MOVE_SPD; var i, ipos; var offset = stepCount * MOVE_SPD / FLOOR_DEPTH * FLOOR_RES; for (i = 0; i < FLOOR_RES + 1; i++) { for (var j = 0; j < FLOOR_RES + 1; j++) { ipos = i + offset;18.制造波浪并非所有顶点都以相同的方式向上缩放,距离相机最远的那些将是较大的,然后两侧将略微减少,并且最亲近相机的那些将缩放最少,这使得背部和侧面看起来更有趣。if ((i > 30) || (j < 12) || (j > 48)) { floorGeometry.vertices[i * (FLOOR_RES + 1) + j].z = snoise.noise(ipos / FLOOR_RES * noiseScale, j / FLOOR_RES * noiseScale, noiseSeed) * FLOOR_HT; } else if (i > 25 && i < 30) { floorGeometry.vertices[i * (FLOOR_RES + 1) + j].z = snoise.noise(ipos / FLOOR_RES * noiseScale, j / FLOOR_RES * noiseScale, noiseSeed) * (FLOOR_HT / 1.2); } else { floorGeometry.vertices[i * (FLOOR_RES + 1) + j].z = snoise.noise(ipos / FLOOR_RES * noiseScale, j / FLOOR_RES * noiseScale, noiseSeed) * (FLOOR_HT / 2); } } } floorGeometry.verticesNeedUpdate = true;}19.调整大小和动画调整窗口大小时,此处的函数将从步骤16中设置的侦听器调用。摄像机,渲染器和编辑器都在此处重置,以匹配浏览器窗口的新维度。animate函数只将其自身设置为60fps,调用render函数来更新显示。function onWindowResize() { camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); renderer.setSize(window.innerWidth, window.innerHeight); composer.setSize(window.innerWidth, window.innerHeight);}function animate() { requestAnimationFrame(animate); render();}20.设定每一个行动框架每帧调用渲染函数,点光源设置为在场景中绕轨道运行,摄像机根据鼠标挪动定位,稍微缓和,使其逐渐挪动到位。相机设置为始终查看场景的中心。function render() { var timer = -0.0002 * Date.now(); pointLight.position.x = 2400 * Math.cos(timer); pointLight.position.z = 2400 * Math.sin(timer); pointLight2.position.x = 1800 * Math.cos(-timer * 1.5); pointLight2.position.z = 1800 * Math.sin(-timer * 1.5); camera.position.x += (mouseX - camera.position.x) * .05; camera.position.y += (-mouseY - camera.position.y) * .05;camera.lookAt(scene.position);21.渲染场景经常会有一个后处理效果在屏幕上诞生毛刺效应,只是为了使屏幕变得活跃并扭曲屏幕,然后再恢复正常在最后一步中,粒子在它们各自的顶点上向前挪动,如果它们到达相机,它们就被放回到距离中。这会更新,并调用’ setWaves’函数使波向前滚动。相关文章推举CSS3动画使用教程 将CSS3动画视为CSS过渡的更复杂的姐妹,动画在几个关键方面与变换不同:动画不会优雅地降级,如果浏览器不支持 […]...React入门教程 ReactJS简介 ReactJS是用于构建UI的javascript库之一,对于Web和便携式应用程序的视图 […]...3D Touch简介:静态快速主屏幕操作 iOS 9引入了3D Touch,用户可以使用该抚摸按下主屏幕图标并获取应用程序中某些操作的快捷方式,或者用户 […]...APPIUM – 用于测试的自动化工具 Appium最初由Dan Cueller开发,用于利用Apple iOS的UI自动化框架对本机挪动应用程序运行 […]...php是什么?为什么要使用php? PHP(PHP的递归首字母缩写:Hypertext Preprocessor)是JavaScript和Pyth […]...WebGL:如何使用WebGL创建液体效果?
我相信每个人都读过百度网站治理员说世界职业摔跤2009:陶水水百度强烈建议使用html5做挪动网站。万里平台如何使用很多网站治理员开始担心它。是这样的吗?如果挪动网站不使用html5,它对排名有什么影响?对于这个问题,每个人都非常关心,我们正在浏览百度网站治理员平台。当你在文章中时,你必须站在第三方的角度。想一想,百度写作的目的是什么?什么样的语言是html5,为什么你近年来总是提到这个? Html5是一种近年来已经成熟的Web前端开发技术。世界职业摔跤2009在客户端浏览方面,它与传统html代码的最大区别在于html5可以根据用户使用的终端的屏幕大小自动调整页面大小,以达到最佳浏览效果。在挪动方面,他可以适应不同的系统,如iPhone和Android。在这种情况下,对于不同手机粉末的用户,无论使用哪种手机,他都可以非常舒适地浏览网站内容,这也是挪动网站最基本的用户体验。 考虑到这一点,我们可以知道百度写道“强烈建议网站治理员使用html5制作挪动电话”的原因是为尽可能使用不同终端的挪动电话用户提供最佳的浏览效果。 html5语言制作挪动台是一个可选因素,而不是强制因素。陶水水只要我们能够满足百度的要求并满足用户基本浏览体验的需求,使用何种语言都无关紧要。就像去上班,走不同路线一样,只要你不到公司迟到,我们就可以根据自己的习惯抉择。 挪动终端关键字应尽可能与PC站同步世界职业摔跤2009 目前,大多数网站只有个人电脑,没有挪动电台,个人电脑的关键字排名已经到了前面。万里平台如何使用如果你现在做一个挪动电台,你怎么能让挪动电台的关键字在最短的时间内到达前面?我的解决方案是:对pc站和挪动台进行开放式调整。完成开放式改编后,百度将逐个匹配您的PC站与挪动站的关键字和网页。通过这种方式,您可以尽快获得挪动电台的关键字。了解该网站如何进行挪动开放式改编? 挪动台是否需要发送外部链接?世界职业摔跤2009 外部链条一直是网站治理员,特殊是近年来,听别人说,外链的作用已经大大减少,不能没有外链排名,这是真的吗?不要被愚弄,或者来自你自己的实际情况。 什么行业需要成为最具挪动性的网站? 到目前为止,没有行业网站不需要挪动台,你可以去百度指数搜索你网站的关键词,万里平台如何使用并看一下挪动网站的搜索份额。但有一点需要注意:服务于本地服务行业的网站是最需要挪动台的网站。从用户需求的角度来看,用户可以找到本地服务的相关要求,并且必须改变他们的需求。他断定需要地址,电话,价格,地图指导和其他要求。挪动台优化最容易被忽视的问题是什么? 不要灰心,似乎你对挪动台优化有点不知所措。陶水水完成上述操作后,挪动台与pc台相同。 (1)域名应尽可能短,并可在搜索列表中完整显示; (2)注意机器人文件的打开。不要担心为什么挪动台当时没有排名?查看遨游器文件是制止搜索引擎抓取的。这种低级错误的案例太多了。 (3)编写标题标签,如主要TKD和几个重要元标签陶水水; (4)对于一些非常小但绝对不可忽略的细节,您可以检查在网站上线之前必须进行的检查万里平台如何使用。世界职业摔跤2009, 陶水水, 万里平台如何使用
我们在研究竞争对手和查找外部资源的时候,通过搜索引擎搜索高级指令可以高效精准的查找到我们想要的资源! 1、site: site:指令主要是用来查询某个域名被搜索引擎抓取并纳入索引库的约摸文件数量,并非准确数值。通过它可以对比不同域名的页面量规模。 例如:site:tuniu.com,返回的就是tuniu.com这个域名在搜索引擎索引库的文件数量及详情。虽然展现出来的文件数量有限,但是足够我们分析使用 2、双引号与减号 双引号:把搜索词放入双引号,代表搜索结果将完全按照文字顺序匹配内容。这个指令可以帮助我们了解搜索词有多少完整匹配的页面,也算是调研其竞争程度的方法之一。 减号:放在搜索词前面,则代表搜索结果是完全消除减号之后的关键字符。需要注意的是,减号之前必须有空格,后边必须紧跟搜索字符,同时减号前边最好是一个你真正想要结果的搜索词。 3、intitle & allintitle intitle:在intitle指令后边紧跟搜索词,主要查询网页Title当中包含该搜索词的页面数量和结果; allintitle:当多个intitle指令组合使用时,可以用allintitle指令代替,如intitle:seo intitle:sem搜索结果和allintitle:seo sem结果相同,该指令对百度和Google同样有效; 4、inurl& allinurl inurl:在inurl指令后边紧跟文字、字母和数字都可以,主要查询网页URL当中包含该搜索字段的页面数量和结果 allinurl:当多个inurl指令组合使用时,可以用allinurl指令代替,如:inurl:seo inurl:sem搜索结果和allinurl:seo sem结果相同,不过这个指令百度并不支持。如果想查询多个搜索字段在URL中的体现的话,还需要用多组inurl指令来查询。
为什么会这样?我认为这主要是由猛烈的竞争引起的万里平台如何使用。互联网流量变得越来越昂贵世界职业摔跤2009,获得客户的成本越来越高。企业不能持有单一的营销推广方法,他们只能在各个方面促进营销。尝试的方式。 以SEO为例。今天的企业网站的SEO不能仅仅基于PC网站。挪动网站比pc网站更重要,挪动搜索流量比pc搜索大得多。世界职业摔跤2009但现状是许多公司可能甚至没有非常粗糙的挪动网站。没有挪动网站,搜索引擎只能强制对pc站点进行转码。 从搜索引擎营销的角度来看,公司不仅基于PC网站和挪动网站的基本优化。至少与布局:新闻,问答,图书馆,百科全书,百度口碑等,这些基本百度产品线。由于百度的这些产品自然具有较高的基本重量,因此很容易获得排名。公司不再局限于说排名不是我的网站。从信息推广的角度来看,这些排名具有很大的价值。但从整体搜索引擎营销的角度来看,这还不够全面。 SEO方法的一种方法是从其他高权重的第三方网站借用资源进行优化。例如万里平台如何使用,我们说新闻推广是基于新闻媒体的高权重和新闻来源的优势。例如,基于企业的行业,我们可以找到行业中的高权重门户网站的资源,例如博客,论坛等,用于密集信息分组。世界职业摔跤2009还有非关联行业的高权重论坛资源。这些方法,虽然效果很弱。但是,当您发送的信息量足够大时,它也会带来一定的效果。 企业的推广需要从原先追求订单转换到追求信息曝光和品牌曝光。营销的更多维度万里平台如何使用。 此外,微信公众账号还有营销布局。如何在微信上构建和展现品牌信息。万里平台如何使用微信公众号,世界职业摔跤2009关键词内容,搜索和搜索排名,小程序,朋友圈推广。这是微信系统的基本营销布局。SEO服务人员需要为企业灌输整体搜索营销理念;企业必须进行更多的网络营销尝试,以解决当前流量越来越高,客户成本高的问题。万里平台如何使用, 世界职业摔跤2009
对于文章万里平台郑州会场,添加图像的文章可以提高文章的质量。万里平台郑州会场对于用于网站更新的SEO优化文章,文章加图像不仅有益于用户体验,而且如果优化正确完成,搜索引擎也将增添灵敏度。 如何制作一个漂亮的网站,网站设计和布局在网站建设阶段占领非常重要的位置,如何使网站继续维持这种高节奏,万里平台郑州会场那么在网站内容更新的过程中,添加相关图片也将开始这样的角色。 以一篇800字的文章为例万里平台郑州会场。如果你使用简陋的文字,它似乎从整体布局有一些单调。从成本的角度来看,800字的文章如果找人写的,大概需要十几元,图片是免费的,从花的时间,800字的文章从概念到成型,再到检验,可能是最少它需要一个小时,但寻找图片和编辑只需几分钟,效果比简陋的文本好得多。 既然您已经撰写了这篇文章,那么您应该再次“装饰”它。 800个单词附有三张图片,立刻显示效果。它不仅直观地延长了物品的“长度”,还增强了用户的喜好。 另外,当我们在百度搜索相关图片时,我们也会发现百度显示的图片都是链接的,这是点击图片到达图片源的网站。万里平台郑州会场也就是说,如果图片被“处理”,搜索引擎将被包含,显然,网站的内容加上图像也有利于网站的SEO优化。 当然万里平台郑州会场,不要以为你可以匹配图片。还需要添加一些技术,因为搜索引擎蜘蛛无法识别图像的内容。万里平台郑州会场毕竟,机器与人类不同。因此,我们经常在网站上的图片中添加alt提示文字。这就是每个人都称之为alt标签的内容。 谷歌的一位工程师明确表示:“ALT标签的内容应该与图像的内容相关,并且应该正确解释图像的内容,以便为用户提供良好的体验.ALT标签的内容确实可以被蜘蛛程序索引......“ 将alt标签添加到图像的优点是它可以提醒用户该图片的含义是什么。以企业网站为例,只需使用文字介绍产品,枯燥乏味,并且使用大量专业术语会让用户显得茫然。插上图片,然后立刻做一个简短的解释,一目了然。如今,有许多设备供用户访问互联网,并且由于网络或设备的速度,一些设备无法打开。通过对alt标签的描述,即使图片没有打开,很多人也会理解图片的含义,而对于阅读文本文档的蜘蛛,他们会理解这张图片的含义。要在内容上使用图像,请注意两点。一种是使用与内容相关的图像,并将整篇文章有机地结合起来以增强阅读体验。另一个是图片的很多SEO技术文章。使用文本描述时,存在关键字优化过多的问题。恶意关键字堆叠受到搜索引擎的惩罚。然后,在图像标签的描述中,它应该尽可能简洁,并且与文章中的单词数量相结合,图片的适当添加通常被认为是在200-300中。在单词的左侧和右侧添加图片,800字的文章,加上3张图片是最好的。 许多人在更新网站时不断更新网站的内容万里平台郑州会场。他们不仅每天都在不断更新,而且还对内容做了各种“装饰”,例如在文章中添加图片,添加超链接......显然,这样做的好处是它越来越大。懒惰的竞争者。如果条件答应,那么添加一个小视频,就更好了。技术在不断完善,如何在SEO优化中有效利用技术,这是一个值得永远探索的话题!万里平台郑州会场
1 贸易 模式是什么?——贸易 模式形貌 了企业怎样 创造代价 、转达 代价 和获代替 价 的根本 原理。那贸易 模式画布是什么呢?2 “贸易 模式画布”是贩卖 过百万、被翻译成 30 种语言的脱销 书《贸易 模式新生代》的核心 头脑 。其计划 简单 易懂,重要 用来帮创业者创建 、可视化、测试自身的贸易 模式的可行性,从而克制 浪费 资金大概 盲目地叠加功能。小公司用它开辟 新范畴 ,GE, PG 以及3M 之类的大公司也可以通过它探索新模式,维持行业竞争力。
以下是几个最实用的百度网盘搜刮 引擎文件搜 简介提供便捷的百度网盘搜刮 服务,无需登录账号即可利用 特点操纵 简单 友爱 ,方便用户快速查找所需资源云盘狗 简介专业的百度云资源搜刮 引擎特点同样无需账号登录,利用 体验友爱 ,可以或许 高效搜刮 百度网盘中的资源fastsoso 简介一个百度云网盘搜刮 网站。
余罪 百度云资源 链接 暗码 9xn3 请在链接失效前尽快点开生存 有题目 可以追问,有资助 请记得采取 。 uk=997shareid=9110#listpath=%2FparentPath=%2F%E7%94%B5%E5%AD%90%E4%B9%A6常书欣余罪TXT精校版完结百度云提取码4t9t及时 查察 假如 有不懂请追问我~~PS网盘易抽,还请尽快下载。
本篇文章给大家谈谈百度云盘搜索引擎推荐在哪,以及百度网盘搜索引擎怎么用对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目次 : 1、百度网盘的搜刮 在哪儿?