博客标题抓取
Blog Title Scraping
我想我可能只是把事情复杂化了,而不是保持简单。
我的问题是:我想把一个博客的标题post抓取到一个prop变量中,把它的作者写到另一个prop变量中。
我的想法是创建一个只关注 /blog 路径的页面加载规则。从那里我会抓取页面寻找定义它的 class,然后通过 DTM 将它传递到我的道具中。
<div class="field field-name-title">
<h2>Online Education</h2>
<div class="field field-name-body">
<p>
<em> by Author Name</em>
</p>
</div>
</div>
我创建了一个页面规则,选择我的 prop 并将其设置为:div.field.field-name-title.innerText
但是当我设置它时,我所看到的只是“div.field.field-name-title .innerText
我处理这个问题的方式不对吗?
您在文本字段中输入的值是文字值,但 %data_element%
语法除外,它表示对 数据元素 的引用(有几个其他 built-in 变量引用)。
要点是,如果您想从抓取的页面内容中填充 Adobe Analytics 变量,您需要创建一个 数据元素 来 returns 所需的值,并且然后在 Adobe Analytics 变量的文本字段中引用 数据元素。
除此之外,您的选择器是错误的。您所做的是 css 选择器和 javascript 语法的奇怪组合。
以下是您可以执行的操作示例,基于您发布的 HTML:
<div class="field field-name-title">
<h2>Online Education</h2>
<div class="field field-name-body">
<p>
<em> by Author Name</em>
</p>
</div>
</div>
Data Element: Article Title
首先,根据您的 html 结构,创建一个 数据元素 以从页面获取文章标题。
转到规则 >
数据元素 >
创建新数据元素
使用以下内容填写字段:
- 姓名:
article_title
- 类型:
CSS Selector
- CSS 选择器链:
div.field-name-title h2
- 获取值:
text
[X]
使用 cleanText 擦除空格和换行符
然后,单击保存更改
Data Element: Article Author
接下来,根据您的 html 结构,创建另一个 数据元素 以从页面获取文章作者。
转到规则 >
数据元素 >
创建新数据元素
使用以下内容填写字段:
- 姓名:
article_author
- 类型:
CSS Selector
- CSS 选择器链:
div.field-name-body em
- 获取值:
text
[X]
使用 cleanText 擦除空格和换行符
然后,单击保存更改
Page Load Rule: Populate Variables
最后,在 页面加载规则 的各种表单字段中,您现在可以使用 [=28= 引用 数据元素 ] 句法。
提示:一旦您开始输入 数据元素 名称(以 %
前缀开头),DTM 将显示auto-complete 对话框,列出 数据元素 匹配。
如果您需要在页面加载规则的 javascript 自定义代码框中引用 数据元素 ,您可以使用以下语法:
_satellite.getVar('data_element_name');
其中 'data_element_name'
是您的 数据元素 的名称。
示例:
s.prop1 = _satellite.getVar('article_title');
注意:与表单字段语法不同,您应该不用%
[=38包裹数据元素的名称=]
我想我可能只是把事情复杂化了,而不是保持简单。
我的问题是:我想把一个博客的标题post抓取到一个prop变量中,把它的作者写到另一个prop变量中。
我的想法是创建一个只关注 /blog 路径的页面加载规则。从那里我会抓取页面寻找定义它的 class,然后通过 DTM 将它传递到我的道具中。
<div class="field field-name-title">
<h2>Online Education</h2>
<div class="field field-name-body">
<p>
<em> by Author Name</em>
</p>
</div>
</div>
我创建了一个页面规则,选择我的 prop 并将其设置为:div.field.field-name-title.innerText
但是当我设置它时,我所看到的只是“div.field.field-name-title .innerText
我处理这个问题的方式不对吗?
您在文本字段中输入的值是文字值,但 %data_element%
语法除外,它表示对 数据元素 的引用(有几个其他 built-in 变量引用)。
要点是,如果您想从抓取的页面内容中填充 Adobe Analytics 变量,您需要创建一个 数据元素 来 returns 所需的值,并且然后在 Adobe Analytics 变量的文本字段中引用 数据元素。
除此之外,您的选择器是错误的。您所做的是 css 选择器和 javascript 语法的奇怪组合。
以下是您可以执行的操作示例,基于您发布的 HTML:
<div class="field field-name-title">
<h2>Online Education</h2>
<div class="field field-name-body">
<p>
<em> by Author Name</em>
</p>
</div>
</div>
Data Element: Article Title
首先,根据您的 html 结构,创建一个 数据元素 以从页面获取文章标题。
转到规则 >
数据元素 >
创建新数据元素
使用以下内容填写字段:
- 姓名:
article_title
- 类型:
CSS Selector
- CSS 选择器链:
div.field-name-title h2
- 获取值:
text
[X]
使用 cleanText 擦除空格和换行符
然后,单击保存更改
Data Element: Article Author
接下来,根据您的 html 结构,创建另一个 数据元素 以从页面获取文章作者。
转到规则 >
数据元素 >
创建新数据元素
使用以下内容填写字段:
- 姓名:
article_author
- 类型:
CSS Selector
- CSS 选择器链:
div.field-name-body em
- 获取值:
text
[X]
使用 cleanText 擦除空格和换行符
然后,单击保存更改
Page Load Rule: Populate Variables
最后,在 页面加载规则 的各种表单字段中,您现在可以使用 [=28= 引用 数据元素 ] 句法。
提示:一旦您开始输入 数据元素 名称(以 %
前缀开头),DTM 将显示auto-complete 对话框,列出 数据元素 匹配。
如果您需要在页面加载规则的 javascript 自定义代码框中引用 数据元素 ,您可以使用以下语法:
_satellite.getVar('data_element_name');
其中 'data_element_name'
是您的 数据元素 的名称。
示例:
s.prop1 = _satellite.getVar('article_title');
注意:与表单字段语法不同,您应该不用%
[=38包裹数据元素的名称=]