<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[以Excel VBA实现对网页中Table的爬虫 --- Part 2]]></title><description><![CDATA[<p dir="auto">在上一篇帖子当中我们介绍了XMLHTTP对象及方法获取网页中Table对应的网页字符串. 那么如何从这些字符串中获取我们想要的数据呢?在python或者java中这些会有对应的包和函数可以实现. 而本篇将会介绍一种简单而基础的方法: 正则表达式 (Regex).</p>
<p dir="auto">3.正则表达式 (Regex):</p>
<p dir="auto">正则表达式是一种用于匹配字符串中字符模式的工具, 它可以用来搜索、编辑和处理文本.</p>
<p dir="auto">正则表达式的作用非常强大，详细的总结可以参考CSDN大佬的帖子：<a href="https://blog.csdn.net/gogoel/article/details/139539448?ops_request_misc=%257B%2522request%255Fid%2522%253A%25227418e52a1f4a908043336136e1d513a2%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&amp;request_id=7418e52a1f4a908043336136e1d513a2&amp;biz_id=0&amp;utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-139539448-null-null.142%5ev102%5epc_search_result_base7&amp;utm_term=vba%20%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F&amp;spm=1018.2226.3001.4187" rel="nofollow">VBA学习笔记六：正则表达式</a>.</p>
<p dir="auto">下面我会总结用到的一些对象和方法:</p>
<p dir="auto">3.1 创建正则表达式对象:</p>
<p dir="auto">3.1.1 前期绑定:</p>
<p dir="auto">添加引用库：工具 &gt; 引用 &gt;勾选 ’Microsoft VBScript Regular Expressions 5.5‘</p>
<pre><code>'直接声明reg对象就可以使用'
Dim reg as New RegExp
</code></pre>
<p dir="auto">3.1.2 后期绑定 (推荐使用):<br />
使用 CreateObject 方法来创建 <code>VBScript.RegExp</code> 对象，便可使用<br />
代码</p>
<pre><code>'先声明再创建reg对象'
Dim reg As Object
Set reg = CreateObject("VBScript.RegExp")
</code></pre>
<p dir="auto">3.2 用到的属性及方法:</p>
<p dir="auto">3.2.1 Pattern 属性<br />
• 描述：定义要匹配的正则表达式模式<br />
• 示例：匹配任意四个字母的单词<br />
<code>reg.Pattern = "\b\w{4}\b"</code><br />
3.2.2 Global 属性<br />
• 描述：设置是否全局搜索匹配。默认为 False，只匹配第一个<br />
• 示例：全局匹配所有符合模式的字符串<br />
<code>reg.Global = True</code></p>
<p dir="auto">3.2.3 Execute 方法<br />
• 描述：执行正则表达式匹配，查找所有符合匹配模式的子字符串，并返回一个匹配集合对象 (MatchCollection对象)<br />
• 示例：查找匹配项，其中 string 是要搜索的字符串<br />
<code>Set matches = reg.Execute(string)</code></p>
<p dir="auto">3.3 匹配规则 这里我照抄CSDN文章:</p>
<p dir="auto"><img src="/assets/uploads/files/1745852816554-157d2261-46c2-4313-a232-0c4c8079a265-image.png" alt="157d2261-46c2-4313-a232-0c4c8079a265-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852768132-6258b8f7-a1f8-4c19-a267-e49b7cc8e985-image.png" alt="6258b8f7-a1f8-4c19-a267-e49b7cc8e985-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852848647-16d5c92c-3716-47b2-aa97-71571c626c78-image.png" alt="16d5c92c-3716-47b2-aa97-71571c626c78-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852871511-c315a32b-c95e-458b-a491-f5d99b516307-image.png" alt="c315a32b-c95e-458b-a491-f5d99b516307-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852895257-a29325aa-1fbb-4e53-8929-fe412fd97883-image.png" alt="a29325aa-1fbb-4e53-8929-fe412fd97883-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852925119-9af8624b-dfbe-4ab8-b2a1-69fa9e32465c-image.png" alt="9af8624b-dfbe-4ab8-b2a1-69fa9e32465c-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852951040-72445095-6198-4af6-a7c1-1c1930fb2132-image.png" alt="72445095-6198-4af6-a7c1-1c1930fb2132-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852969849-0b578d14-5ad9-4391-bf2d-3975a7d69d45-image.png" alt="0b578d14-5ad9-4391-bf2d-3975a7d69d45-image.png" class="img-responsive img-markdown" /></p>
<p dir="auto">3.4 匹配结果的对象:</p>
<p dir="auto">3.4.1 MatchCollection对象:</p>
<p dir="auto">含义：是一个<strong>集合</strong>对象，包含了正则表达式在输入文本中找到的所有匹配项，每个匹配项都表示为一个 Match 对象.</p>
<p dir="auto">用到的属性:<br />
Item 属性<br />
○ 功能：返回集合中第几个 <code>Match</code> 对象，从0开始计数<br />
○ 用法：<code>matches.Item(index)</code> 或 <code>matches(index)</code><br />
○ 示例：输出第一个匹配到的对象<br />
<code>Set match = matches(0)</code><br />
<code>MsgBox "Found match: " &amp; match.Value</code></p>
<p dir="auto">3.4.2 Match对象:</p>
<p dir="auto">含义：表示正则表达式匹配中的一个匹配项，包含匹配的文本和其他相关信息</p>
<p dir="auto">用到的属性:</p>
<p dir="auto">SubMatches 属性<br />
○ 功能：返回一个 <code>SubMatches</code> 集合（注意这里返回了<strong>集合</strong>，因而适用MatchCollection对象的所有方法），包含所有捕获的子匹配项，通过索引访问捕获组的内容（索引从0开始）可以获取匹配到的分组内容<br />
○ 前提：在正则表达式模式中使用了括号来创建捕获组 (参考3.3.&gt;&gt;&gt;)<br />
○ 用法：<code>match.SubMatches(n)</code>*表示访问子匹配项第n+1个捕获组的内容，也就是表达式里面的第n+1个括号</p>
<p dir="auto">*这里的语法也可以写成<code>match.SubMatches.Item(n)</code>来表达同样的意思。</p>
<p dir="auto">4.正则表达式应用实例:</p>
<p dir="auto">4.1 代码及注释</p>
<pre><code>Sub getrates(s As String)

    Dim reg As Object, m As Object, mchs As Object
    Dim i As Long, j As Long, p As String
    
    Set reg = CreateObject("vbscript.regexp")'后期绑定创建regex'
    
    '----regex'
    p = "&lt;tr&gt;\s*&lt;td.*&gt;&lt;time.*&gt;([^&lt;]*)&lt;/time&gt;\s*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;/tr&gt;"
    
    reg.pattern = p'3.2.1 pattern属性'
    reg.Global = True'3.2.2 global属性'
    
    Set mchs = reg.Execute(s)'3.2.3 execute方法'
    
    i = 6
    For Each m In mchs'3.4.1 MatchCollection对象'
        For j = 0 To m.submatches.Count - 1
            Cells(i, j + 1) = m.submatches.Item(j)
       '利用3.4.2match对象的submatches属性去将捕获字符输出到单元格中'
        Next j
        i = i + 1
    Next m
    
End Sub
</code></pre>
<p dir="auto">4.2 正则表达式<code>p</code>的写法:</p>
<p dir="auto">这里我复制出来整个Table的字符串, 以第一行（<code>&lt;tr&gt;...&lt;/tr&gt;</code>为一行的字符串）为例, 用黄色标出来我想要的字符.</p>
<p dir="auto"><img src="/assets/uploads/files/1745854013739-fc7c8410-56ab-4546-8119-8652145ea589-image.png" alt="fc7c8410-56ab-4546-8119-8652145ea589-image.png" class="img-responsive img-markdown" /></p>
<p dir="auto">参照3.3匹配规则中的捕获组方法, 将需要输出的字符以<code>()</code>包含进去,根据网页字符串的语法<code>&lt;tr&gt;.*&lt;/tr&gt;</code>和<code>&lt;td&gt;.*&lt;/td&gt;</code>做一些识别与中间内容的捕获, 作者就得到了如下的正则表达式.</p>
<p dir="auto"><img src="/assets/uploads/files/1745854537161-997718e6-8a54-411b-872e-9af853eb8a4d-image.png" alt="997718e6-8a54-411b-872e-9af853eb8a4d-image.png" class="img-responsive img-markdown" /></p>
<p dir="auto">5.总结:</p>
<p dir="auto">作者所使用的方法基本可以分为两步:<br />
第一步, 利用XMLHTTP对象先从网页中返回字符串;<br />
第二步, 利用正则表达式的匹配及捕获funtion从字符串中返回需要的字符</p>
<p dir="auto">6.杂谈:</p>
<p dir="auto">本帖是作者应管理员<a href="https://actuaryunion.com/user/mengkelyu" rel="nofollow">珂珂</a>之邀写的第一篇技术分享帖子, 谢邀~</p>
<p dir="auto">但作者对本论坛的流量表示怀疑, 因为截止到作者写part 2时, part 1帖仅有两个浏览量, 其中一个还是作者本人贡献QAQ.</p>
<p dir="auto">在此呼吁珂珂阿姨将论坛内容在公众号中做实时更新, 并祝愿珂珂阿姨做大做强, 再创辉煌~ 此致, 敬礼^.^-!</p>
]]></description><link>https://actuarygarden.com/topic/291/以excel-vba实现对网页中table的爬虫-part-2</link><generator>RSS for Node</generator><lastBuildDate>Sat, 25 Jul 2026 21:39:38 GMT</lastBuildDate><atom:link href="https://actuarygarden.com/topic/291.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 28 Apr 2025 15:55:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to 以Excel VBA实现对网页中Table的爬虫 --- Part 2 on Mon, 28 Apr 2025 15:57:47 GMT]]></title><description><![CDATA[<p dir="auto">在上一篇帖子当中我们介绍了XMLHTTP对象及方法获取网页中Table对应的网页字符串. 那么如何从这些字符串中获取我们想要的数据呢?在python或者java中这些会有对应的包和函数可以实现. 而本篇将会介绍一种简单而基础的方法: 正则表达式 (Regex).</p>
<p dir="auto">3.正则表达式 (Regex):</p>
<p dir="auto">正则表达式是一种用于匹配字符串中字符模式的工具, 它可以用来搜索、编辑和处理文本.</p>
<p dir="auto">正则表达式的作用非常强大，详细的总结可以参考CSDN大佬的帖子：<a href="https://blog.csdn.net/gogoel/article/details/139539448?ops_request_misc=%257B%2522request%255Fid%2522%253A%25227418e52a1f4a908043336136e1d513a2%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&amp;request_id=7418e52a1f4a908043336136e1d513a2&amp;biz_id=0&amp;utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-139539448-null-null.142%5ev102%5epc_search_result_base7&amp;utm_term=vba%20%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F&amp;spm=1018.2226.3001.4187" rel="nofollow">VBA学习笔记六：正则表达式</a>.</p>
<p dir="auto">下面我会总结用到的一些对象和方法:</p>
<p dir="auto">3.1 创建正则表达式对象:</p>
<p dir="auto">3.1.1 前期绑定:</p>
<p dir="auto">添加引用库：工具 &gt; 引用 &gt;勾选 ’Microsoft VBScript Regular Expressions 5.5‘</p>
<pre><code>'直接声明reg对象就可以使用'
Dim reg as New RegExp
</code></pre>
<p dir="auto">3.1.2 后期绑定 (推荐使用):<br />
使用 CreateObject 方法来创建 <code>VBScript.RegExp</code> 对象，便可使用<br />
代码</p>
<pre><code>'先声明再创建reg对象'
Dim reg As Object
Set reg = CreateObject("VBScript.RegExp")
</code></pre>
<p dir="auto">3.2 用到的属性及方法:</p>
<p dir="auto">3.2.1 Pattern 属性<br />
• 描述：定义要匹配的正则表达式模式<br />
• 示例：匹配任意四个字母的单词<br />
<code>reg.Pattern = "\b\w{4}\b"</code><br />
3.2.2 Global 属性<br />
• 描述：设置是否全局搜索匹配。默认为 False，只匹配第一个<br />
• 示例：全局匹配所有符合模式的字符串<br />
<code>reg.Global = True</code></p>
<p dir="auto">3.2.3 Execute 方法<br />
• 描述：执行正则表达式匹配，查找所有符合匹配模式的子字符串，并返回一个匹配集合对象 (MatchCollection对象)<br />
• 示例：查找匹配项，其中 string 是要搜索的字符串<br />
<code>Set matches = reg.Execute(string)</code></p>
<p dir="auto">3.3 匹配规则 这里我照抄CSDN文章:</p>
<p dir="auto"><img src="/assets/uploads/files/1745852816554-157d2261-46c2-4313-a232-0c4c8079a265-image.png" alt="157d2261-46c2-4313-a232-0c4c8079a265-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852768132-6258b8f7-a1f8-4c19-a267-e49b7cc8e985-image.png" alt="6258b8f7-a1f8-4c19-a267-e49b7cc8e985-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852848647-16d5c92c-3716-47b2-aa97-71571c626c78-image.png" alt="16d5c92c-3716-47b2-aa97-71571c626c78-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852871511-c315a32b-c95e-458b-a491-f5d99b516307-image.png" alt="c315a32b-c95e-458b-a491-f5d99b516307-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852895257-a29325aa-1fbb-4e53-8929-fe412fd97883-image.png" alt="a29325aa-1fbb-4e53-8929-fe412fd97883-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852925119-9af8624b-dfbe-4ab8-b2a1-69fa9e32465c-image.png" alt="9af8624b-dfbe-4ab8-b2a1-69fa9e32465c-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852951040-72445095-6198-4af6-a7c1-1c1930fb2132-image.png" alt="72445095-6198-4af6-a7c1-1c1930fb2132-image.png" class="img-responsive img-markdown" /><br />
<img src="/assets/uploads/files/1745852969849-0b578d14-5ad9-4391-bf2d-3975a7d69d45-image.png" alt="0b578d14-5ad9-4391-bf2d-3975a7d69d45-image.png" class="img-responsive img-markdown" /></p>
<p dir="auto">3.4 匹配结果的对象:</p>
<p dir="auto">3.4.1 MatchCollection对象:</p>
<p dir="auto">含义：是一个<strong>集合</strong>对象，包含了正则表达式在输入文本中找到的所有匹配项，每个匹配项都表示为一个 Match 对象.</p>
<p dir="auto">用到的属性:<br />
Item 属性<br />
○ 功能：返回集合中第几个 <code>Match</code> 对象，从0开始计数<br />
○ 用法：<code>matches.Item(index)</code> 或 <code>matches(index)</code><br />
○ 示例：输出第一个匹配到的对象<br />
<code>Set match = matches(0)</code><br />
<code>MsgBox "Found match: " &amp; match.Value</code></p>
<p dir="auto">3.4.2 Match对象:</p>
<p dir="auto">含义：表示正则表达式匹配中的一个匹配项，包含匹配的文本和其他相关信息</p>
<p dir="auto">用到的属性:</p>
<p dir="auto">SubMatches 属性<br />
○ 功能：返回一个 <code>SubMatches</code> 集合（注意这里返回了<strong>集合</strong>，因而适用MatchCollection对象的所有方法），包含所有捕获的子匹配项，通过索引访问捕获组的内容（索引从0开始）可以获取匹配到的分组内容<br />
○ 前提：在正则表达式模式中使用了括号来创建捕获组 (参考3.3.&gt;&gt;&gt;)<br />
○ 用法：<code>match.SubMatches(n)</code>*表示访问子匹配项第n+1个捕获组的内容，也就是表达式里面的第n+1个括号</p>
<p dir="auto">*这里的语法也可以写成<code>match.SubMatches.Item(n)</code>来表达同样的意思。</p>
<p dir="auto">4.正则表达式应用实例:</p>
<p dir="auto">4.1 代码及注释</p>
<pre><code>Sub getrates(s As String)

    Dim reg As Object, m As Object, mchs As Object
    Dim i As Long, j As Long, p As String
    
    Set reg = CreateObject("vbscript.regexp")'后期绑定创建regex'
    
    '----regex'
    p = "&lt;tr&gt;\s*&lt;td.*&gt;&lt;time.*&gt;([^&lt;]*)&lt;/time&gt;\s*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;.*&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;td.*&gt;([^&lt;]*)&lt;/td&gt;\s*&lt;/tr&gt;"
    
    reg.pattern = p'3.2.1 pattern属性'
    reg.Global = True'3.2.2 global属性'
    
    Set mchs = reg.Execute(s)'3.2.3 execute方法'
    
    i = 6
    For Each m In mchs'3.4.1 MatchCollection对象'
        For j = 0 To m.submatches.Count - 1
            Cells(i, j + 1) = m.submatches.Item(j)
       '利用3.4.2match对象的submatches属性去将捕获字符输出到单元格中'
        Next j
        i = i + 1
    Next m
    
End Sub
</code></pre>
<p dir="auto">4.2 正则表达式<code>p</code>的写法:</p>
<p dir="auto">这里我复制出来整个Table的字符串, 以第一行（<code>&lt;tr&gt;...&lt;/tr&gt;</code>为一行的字符串）为例, 用黄色标出来我想要的字符.</p>
<p dir="auto"><img src="/assets/uploads/files/1745854013739-fc7c8410-56ab-4546-8119-8652145ea589-image.png" alt="fc7c8410-56ab-4546-8119-8652145ea589-image.png" class="img-responsive img-markdown" /></p>
<p dir="auto">参照3.3匹配规则中的捕获组方法, 将需要输出的字符以<code>()</code>包含进去,根据网页字符串的语法<code>&lt;tr&gt;.*&lt;/tr&gt;</code>和<code>&lt;td&gt;.*&lt;/td&gt;</code>做一些识别与中间内容的捕获, 作者就得到了如下的正则表达式.</p>
<p dir="auto"><img src="/assets/uploads/files/1745854537161-997718e6-8a54-411b-872e-9af853eb8a4d-image.png" alt="997718e6-8a54-411b-872e-9af853eb8a4d-image.png" class="img-responsive img-markdown" /></p>
<p dir="auto">5.总结:</p>
<p dir="auto">作者所使用的方法基本可以分为两步:<br />
第一步, 利用XMLHTTP对象先从网页中返回字符串;<br />
第二步, 利用正则表达式的匹配及捕获funtion从字符串中返回需要的字符</p>
<p dir="auto">6.杂谈:</p>
<p dir="auto">本帖是作者应管理员<a href="https://actuaryunion.com/user/mengkelyu" rel="nofollow">珂珂</a>之邀写的第一篇技术分享帖子, 谢邀~</p>
<p dir="auto">但作者对本论坛的流量表示怀疑, 因为截止到作者写part 2时, part 1帖仅有两个浏览量, 其中一个还是作者本人贡献QAQ.</p>
<p dir="auto">在此呼吁珂珂阿姨将论坛内容在公众号中做实时更新, 并祝愿珂珂阿姨做大做强, 再创辉煌~ 此致, 敬礼^.^-!</p>
]]></description><link>https://actuarygarden.com/post/607</link><guid isPermaLink="true">https://actuarygarden.com/post/607</guid><dc:creator><![CDATA[jonathan-jiang]]></dc:creator><pubDate>Mon, 28 Apr 2025 15:57:47 GMT</pubDate></item></channel></rss>