如何从维基百科页面中删除第一段?

时间:2010-05-10 01:33:40

标签: php dom xpath web-crawler

假设我想抓住this wikipedia page中的第一段。如何使用XPath或DOM&获取标题和内容框之间的主要文本? PHP或类似的东西?

有没有PHP库?我不想使用api,因为它有点复杂。

注意:我只需要在我的页面下添加一个小部件,显示来自维基百科的相关信息。

1 个答案:

答案 0 :(得分:0)

使用以下XPath表达式:

/*/h:body//h:h1
  |
   /*/h:body//h:h1/following::node()
      [count(. | //h:table[@id='toc']
                  /preceding::node()
             )
      =
       count(//h:table[@id='toc']
                  /preceding::node()
             )
       ]

此处前缀h:绑定到XHTML名称空间("http://www.w3.org/1999/xhtml")。

此转换显示所需结果确实已生成

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:h="http://www.w3.org/1999/xhtml"
 >
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/">
  <xsl:copy-of select=
  "/*/h:body//h:h1
  |
   /*/h:body//h:h1/following::node()
      [count(. | //h:table[@id='toc']
                  /preceding::node()
             )
      =
       count(//h:table[@id='toc']
                  /preceding::node()
             )
       ]
  "/>
 </xsl:template>
</xsl:stylesheet>

在维基百科文章的XHTML文档上运行(您还需要为此文档定义两个实体&nbsp;&reg;),生成所需结果。