教程:dedecms织梦TAG标签调用代码

优采云 发布时间: 2022-11-17 02:51

  教程:dedecms织梦TAG标签调用代码

  标签标签

  是一种自己定义的关键词,比分类更准确、更具体,可以概括文章主要内容,合理使用TAG标签,可以让你发表的文章更容易检索。

  很多网站首页、列表页和文章页都用超链接调用TAG关键词,有利于蜘蛛搜索和抓取,也有利于用户点击,那么如何在织梦dedecms系统的网站上实现此功能呢?对此,做网站吧,整理出以下方法供大家使用:

  1、TaT ?B 6g 标签 o V % 的语法解释

  基本语法:

  {dede:tag row='30' sort='new' getall='0′}

  c B 8 r///a/dedejq/[field:link/]'>[field:tag /]

  {/dede:tag}

  参数说明:

  row=K z 9 W k \ B * x '30' 呼叫号码为 30

  sort='new' 排序 月, 兰特, 周

  getall='0' 获取当前内容页面 TAG 标记的类型 0,以及获取所有 TAG 标记的类型 1。

  基础模板字段:链接、标记

  2. 最新的标签标签称为

  {dede:tag row='30' sort='new'}[字段:突出显示/]

  ([字段:结果/])

  {/dede:tag}

  3.调用本月热门标签标签

  {dede:tag row='30' sort='month'}I d s d stp:///a/dedejq/[field:link/]'>[field:

  tagname/]([field:result/])

  {/dede:tag}

  4. 随机标签调用

  {deu } ^de:tag row='60' sort='rand'}

  $ J | m W 5 F /a/dedejq/[field:link/]'>[field:highlight/]([field:result/])

  {/dede:tag}

  5. 采集热 [# W 0 V N L n – 门标签,转换后刷新

  模板代码:

  {dede:tag row='10' sort='month' }

  , E y u mom/a/dedejq/[field:link/]'>[field:tagname/] &o : T # hlt;/a>

  {/dede:tag}

  ^ e 8 {t language=“JavaScript”>

  偏移量){

  tag_a.className=“tag”+(rnd-offsc y 2 4et);

  }

  }

  }/

  /–>

  CSS代码:

  .tag1 { color:h Z j j m G i + X#339900; font-weight:bold; }

  .tag2 { color:#e65730; }

  .tag3 { color:#00b9da; }

  .tag4 { color:#FG 2 4 C +E3981; 7 5 ) T [ Jfont-weighW Z P 7 } G &t:bold; font-size:14px; }

  6. 在页面文章调用标签标签

  {J w % = S y p 8 gdede:tag table='dede_search_keywords' sort='keyword' row='2′ ifd O b y F=“}

  \ L \dedejq/[field:link/]' target=_i 7 * # _blank>[field:tag /]

  {/dede:tag}

  或

  {dede:fie# n : 2 [ r XLD name='Keywords' runphp='yes' }

  if(!empty(@me)){

  $kws = 爆炸(' ',@me);

  @me = “”;

  foreach($kws as $k){

  @me .= “O / x 4 # '/tag.php?/$k/'>$k ”;

  }

  

  @me= str_repla' $ F 0 }ce('+', ' ',trim(@me));

  }

  {/dede:field}

  7. 列表页调用 TAG 标签的两个 b # k F w D 方法

  dedecms列表中的默认值无法调用 tag\q v C; _ X 标签。Do 网站 G * { r p i, 7 n 为您提供以下不同版本的标签标签调用 T D G A p A are you 方法:

  (1)、de, w \decms 5.7 调用方法

  首先,找到 include\helpers\archive.helper.php 文件(注:有些朋友会有疑问,首页和频道,列表应该添加不同的调用,但我开始用列表页面测试,成功;添加 m \ b v q r 首页后,测试也进入了 D Y G R U Y T + D 功能显示,所以我没有继续深入研究,另外,这个文件的内容发生了变化,在后台文件是无法更改的,提示 _&0 7 是注入 sql,所以要在 ftp 中找到这个文件来更改 0。)

  在底部添加:

  函数; f G GetTags_list($aid)

  {

  全球$dsql;

  $tags = “;

  $query = “从'ma_taglisi v \ at'中选择标签,其中aid='$aid'”;

  ~ w T $dsql->Execute('tag',$query);

  0 I 5 + 2 y a s whil' j % s ~ we($row = $dsql->GetArray('tag'))

  {

  $tags .= ($tags==“ ?“9 R.Q e #&lt^ ) \ n 6;a hreb E H f Q uf='“.urlencode($row['tag']).”' &gl f _t;Y ] R 5 L t # = G“.$row['tag'].”“ : ','.”O % V x b ^ .i P /tags.php?/“.urlencode($row['tag']).”' >“.$row['tag'].”“);

  }

  返回 $tau P % @ rgs;

  }

  那么Q I S + v b H k,加上:,这里列表需要调用标签标签

  [字段:id 函数=GetTags_list(@me)/]

  以完成。

  (2)、dedecms 5K T y W + C g j.6 版本 G \ G Y # |G本的调用方法

  方法一:

  只需在模板需要的地方添加以下代码:

  [字段:ID runphp=yes]

  $tsql = new DedeSql(false);

  $tags = “B F e –;

  $tsql->SetQuery(“选择 i.tag 从 dede_taglist t 左连接 dede_tagindex i on i.id=t.tid 其中 t.an / ;E Zid='@me'“);

  $tsql-e ) ;>ExG V q @ecute('t');

  while($row = $tsql->GetArray('t',MYSQL_ASSOC)){

  $tags .= “”.$row['tag'].“ &k u blt;/a>”;

  }

  @me=$tags;

  [/字段:id]

  注意:此步骤无法在 dede 5.7 中实现。

  方法2:

  打开 dedecms根目录 T k Y ~include/common.func.php,在底部的 “!k ?A b O?>“在以下代码之前:

  让我们做网站:列表页调用标签的方法

  函数列表标签($aid)

  {

  $tsql = new DedeSql(false);

  $tags = “;{ ( n : u X ' , m

  $tsql->SetQuery(“Select i.tag FrM .o 9 Oom dt 7 ;2 j ] ^ede_taglist t left join dede_tagindex i on i.id=t.tid where t.aid='$aid'“);

  $tsql->执行('t');

  whi– x W s e – ale($row = $tsql->GetArray('t',MYSQL_ASSOC)){7 C \ j

  $tags .= “D ( & 6lencode($row['tag']).” /'>“.$rowj 0 Y ? x v z o J['tag'].”";

  }% W ?z F |_ = i

  雷图]U Y骨灰盒$tags;

  }

  {@ ? n i 2 0 , 5 4dede:field.id runphp=yes}

  $tsql = new DedeSql(false);

  $tags = “;

  

  $tsql->SetQuery(“Select i.tag From ded\ } q |e_taglist t left join dede_tak f 4gindex i on i.id=t.tid where t.aid='@me'”);

  $' 1 ~tsql->Execute('t');

  while($row = $tsql->GetArray('t',MYSQL_ASSOC)){

  $tags .= “e D Hhp?/”.urlencode($row['tag']).“' >”.$row['tag'].“”;

  }

  @me=$# A F ytags;

  {/dede:field.id}

  添加代码 6 j't*$x 后,可以使用列表页:

  {m s s C $dede:field.id function=“listtag(@me)”/}

  以调用标签标签。

  方法三:

  inc_functions.php 添加 :

  函数列表标记($aid){

  $tsql = new DedeSql(p ' w x 8 Q 3 s tfalse);

  $tags = “;

  $tsql->SetQuery(“Select i.tagname From xkzzz_tag_list t left join xkzzz_tu 4 t \ 0 { x gag_index i on i.id=t.tid where t.aid='$aid'”);

  $tsql->执行('t');

  while($row = $tsql->Getj [ x &Array('t'{ N f M K v S,MYSQL_AO r _ 0 |SSOC)){

  $tags .= “s 1 j { ~ + !/tag.php?/”.urlencodeE # 6 [ z H 0 V Y($row['tagname']).“' >”.$rowu F G y A ,['tagname'].“”;

  }

  + _ c j c 6 d 返回$tags;

  }

  然后添加 :,其中列表页位于

  [字段:ID 函数=“列表标记(@me)”/]

  可以调出来,但是这个方法也需要更改程序文件,看不懂代码的朋友,慎用吧!

  8. 首页调用该方法文章 Tg j LAG 标签

  如果您网站使用 dedecms v5.7 可以使用以下标签:

  径直

  [field:id function=GetTags(@me)/]

  可以调出,但不能调出g Y # k x s T O \没有连接,为了添加标签标签的链接,还需要做到以下几点:

  首先,注 4 + z { # 。E % 删除 130 行收录/帮助程序/存档.helper.php 文件

  $tags .= ($tags==“ ? $row['标签'] : ','.$row['标签']);

  用以下?!C 语句替换,当然是 J { |R 您还可以添加自己的样式:

  $tags .= “_ % k a !php?/”.urlencode($row['tag']).“ /'>”.$row['tag'].”";

  添加 # z ; ! p t ] o 下一代 { 0 H R i 代码:

  if ( ! function_exists(7 h * Y 0 r Q'GetTagk')){

  函数 GetTagk($aid)

  {@ / ! ; * K { i

  全球$dsql;

  $tagk = “;

  $query = “选择标签,从'ma_taglist'中辅助,其中aid='$aid'”;

  $dsql->Execute('tagD v ^ n b',$query);

  while($row = $dsql->GetArray('tag'))

  {

  $tagk .= ($t\ Z * & \ } 3agk==“n 1 i ? $row['tag'] : ','.$row['tag']);

  }

  返回 $ta 2 V )O { mgk;

  }

  }

  然后,打开 dede/a( h m^ Jrticle_edit.php 找到:

  $tags = Gf I j DetTags($aid);

  添加以下内容:

  $t( H e ~ M T 8 | *agk = GetTagk($o Q D Jaid);

  打开 dede/tempj x z t F n h mlets/article_edit.htm 再次调用标签标签

  学习笔记:学python,怎么能不学习scrapy呢

  本文分享自华为云社区《学python怎么能不学scrapy?本博客带你学起来-云社区-华为云》,作者:橡皮擦。

  在正式写爬虫案例之前,我们先系统地了解一下scrapy。

  scrapy安装和简单操作

  使用命令pip install scrapy进行安装。安装成功后,需要采集几个网址,方便后续学习使用。

  安装完成后,直接在控制台输入scrapy,出现如下命令即表示安装成功。

  > scrapy

Scrapy 2.5.0 - no active project

Usage:

scrapy [options] [args]

Available commands:

  上图是scrapy内置命令列表,标准格式的scrapy,可以通过scrapy -h查看指定命令的帮助手册。

  scrapy中有两种命令,一种是全局的,一种是项目中的。后者需要进入scrapy目录才能运行。

  这些命令一开始不需要完全记住,随时可以查看。还有几个比较常用的,例如:

  **scrpy 启动项目**

  该命令首先根据项目名称创建一个文件夹,然后在该文件夹下创建一个scrpy项目。这一步是所有后续代码的起点。

  > scrapy startproject my_scrapy

> New Scrapy project 'my_scrapy', using template directory 'e:\pythonproject\venv\lib\site-packages\scrapy\templates\project', created in: # 一个新的 scrapy 项目被创建了,使用的模板是 XXX,创建的位置是 XXX

E:\pythonProject\滚雪球学Python第4轮\my_scrapy

You can start your first spider with: # 开启你的第一个爬虫程序

cd my_scrapy # 进入文件夹

scrapy genspider example example.com # 使用项目命令创建爬虫文件

  以上内容添加了一些评论,可以对照学习。默认生成的文件位于 python 运行时目录中。如果要修改项目目录,请使用如下格式化命令:

  scrapy startproject myproject [project_dir]

  例如

  scrapy startproject myproject d:/d1

  命令基于模板创建的项目结构如下,其中红色下划线为项目目录,绿色下划线为scrapy项目。如果要运行项目命令,首先要进入项目目录下红色下划线的my_scrapy文件夹。控制项目。

  下面生成爬虫文件

  使用命令scrapy genspider [-t template]生成爬虫文件。该方法是快捷操作,也可以手动创建。创建的爬虫文件会出现在当前目录或项目文件夹下的spiders文件夹中,name为爬虫名称,domain用于爬虫文件中allowed_domains和start_urls数据,[-t template]表示可以选择生成文件模板。

  要查看所有模板,请使用以下命令,默认模板是 basic。

  > scrapy genspider -l

basic

crawl

csvfeed

xmlfeed

  创建第一个scrapy爬虫文件,测试命令如下:

  >scrapy genspider pm imspm.com

Created spider 'pm' using template 'basic' in module:

my_project.spiders.pm

  这时在spiders文件夹中,出现了pm.py文件,文件内容如下:

  import scrapy

class PmSpider(scrapy.Spider):

name = 'pm'

allowed_domains = ['imspm.com']

start_urls = ['http://imspm.com/']

def parse(self, response):

pass

  测试 scrapy 爬虫运行

  使用命令scrapy crawl,spider是上面生成的爬虫文件名,如果出现如下内容,说明爬虫加载正确。

  >scrapy crawl pm

2021-10-02 21:34:34 [scrapy.utils.log] INFO: Scrapy 2.5.0 started (bot: my_project)

[...]

  scrapy的基本应用

  scrapy 的工作流程非常简单:

  采集首页源码;分析首页源码,获取下一页链接;请求下一页的源代码;解析源码,获取下一页的源码;[…] 过程中,提取到目标数据后,保存。

  下面给大家展示一个scrapy的完整案例应用,作为爬虫120案例scrapy部分的第一个例子。

  > scrapy startproject my_project 爬虫

> cd 爬虫

<p>

> scrapy genspider pm imspm.com</p>

  得到项目结构如下:

  对上图中部分文件的简要说明。

  使用scrapy crawl pm运行爬虫后,所有的输出和描述如下:

  上面代码的请求次数是7次,因为pm.py文件中默认没有添加www。如果添加此内容,则请求数变为 4。

  当前pm.py文件代码如下:

  import scrapy

class PmSpider(scrapy.Spider):

name = &#39;pm&#39;

allowed_domains = [&#39;www.imspm.com&#39;]

start_urls = [&#39;http://www.imspm.com/&#39;]

def parse(self, response):

print(response.text)

  其中的parse是指请求start_urls中的地址,得到response后的回调函数,通过参数response的.text属性直接输出网页源码。

  获取到源码后,需要对源码进行解析存储

  在存储之前,需要手动定义一个数据结构,在items.py文件中实现,修改代码中的类名,MyProjectItem → ArticleItem。

  import scrapy

class ArticleItem(scrapy.Item):

# define the fields for your item here like:

# name = scrapy.Field()

title = scrapy.Field() # 文章标题

url = scrapy.Field() # 文章地址

author = scrapy.Field() # 作者

  修改pm.py文件中的parse函数,增加网页解析相关操作。这个操作类似于pyquery的知识点,直接观察代码就可以掌握。

   def parse(self, response):

# print(response.text)

list_item = response.css(&#39;.list-item-default&#39;)

# print(list_item)

for item in list_item:

title = item.css(&#39;.title::text&#39;).extract_first() # 直接获取文本

url = item.css(&#39;.a_block::attr(href)&#39;).extract_first() # 获取属性值

author = item.css(&#39;.author::text&#39;).extract_first() # 直接获取文本

print(title, url, author)

  response.css 方法返回一个选择器列表,可以对其进行迭代,然后对其中的对象调用 css 方法。

  在pm.py中导入items.py中的ArticleItem类,然后按照如下代码修改:

  def parse(self, response):

# print(response.text)

list_item = response.css(&#39;.list-item-default&#39;)

# print(list_item)

for i in list_item:

item = ArticleItem()

title = i.css(&#39;.title::text&#39;).extract_first() # 直接获取文本

url = i.css(&#39;.a_block::attr(href)&#39;).extract_first() # 获取属性值

author = i.css(&#39;.author::text&#39;).extract_first() # 直接获取文本

# print(title, url, author)

# 对 item 进行赋值

item[&#39;title&#39;] = title

item[&#39;url&#39;] = url

<p>

item[&#39;author&#39;] = author

yield item</p>

  这时候scrapy爬虫运行时,会出现如下提示信息。

  至此一个单页爬虫就完成了

  接下来再次修改parse函数,解析完第一页后,再解析第二页的数据。

  def parse(self, response):

# print(response.text)

list_item = response.css(&#39;.list-item-default&#39;)

# print(list_item)

for i in list_item:

item = ArticleItem()

title = i.css(&#39;.title::text&#39;).extract_first() # 直接获取文本

url = i.css(&#39;.a_block::attr(href)&#39;).extract_first() # 获取属性值

author = i.css(&#39;.author::text&#39;).extract_first() # 直接获取文本

# print(title, url, author)

# 对 item 进行赋值

item[&#39;title&#39;] = title

item[&#39;url&#39;] = url

item[&#39;author&#39;] = author

yield item

next = response.css(&#39;.nav a:nth-last-child(2)::attr(href)&#39;).extract_first() # 获取下一页链接

# print(next)

# 再次生成一个请求

yield scrapy.Request(url=next, callback=self.parse)

  上面代码中,变量next代表下一页的地址,通过response.css函数获取链接。请重点学习css选择器。

  产量下降。request(url=next, callback=self.parse)表示重新创建一个请求,请求的回调函数是parse自身,代码运行效果如下。

  如果要保存运行结果,只需运行以下命令即可。

  scrapy crawl pm -o pm.json

  如果要将每条数据存储为单独的一行,请使用以下命令 scrapy crawl pm -o pm.jl 。

  生成的文件还支持csv、xml、marchal、pickle,大家可以自己试试。

  让我们使用数据管道

  打开pipelines.py文件,修改类名MyProjectPipeline→TitlePipeline,然后编译如下代码:

  class TitlePipeline:

def process_item(self, item, spider): # 移除标题中的空格

if item["title"]:

item["title"] = item["title"].strip()

return item

else:

return DropItem("异常数据")

  此代码用于去除标题中的左右空格。

  写入后需要在settings.py文件中开启ITEM_PIPELINES配置。

  ITEM_PIPELINES = {

&#39;my_project.pipelines.TitlePipeline&#39;: 300,

}

  300是PIPELINES操作的优先顺序,可以根据需要修改。再次运行爬虫代码,你会发现标题的左右空格已经被去掉了。

  至此,一个scrapy的基础爬虫就写好了。

  戳下方关注,第一时间了解华为云的新鲜技术~

  华为云博客_大数据博客_人工智能博客_云计算博客_开发者中心-华为云

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线