使用Beautiful Soup查找XML中的URL的所有页面ID

时间:2017-10-30 15:53:53

标签: python beautifulsoup

以下是我正在使用的XML备份的结构。我已经写了一些代码来获取XML中的所有URL - 对于每个URL,我可以通过这种方式遍历XML并查找它出现的页面ID(下面的XML结构中的第二个标记) ?

<page>
 <id></id>
 <name></name>
 <description>&lt;a href=&quot;http://google.com&quot; target=&quot;_self&quot;&gt;LINK&lt;/a&gt;</description>
 <boxes>
  <box>
  </box>
 </boxes>
</page>

更新

 <page>
 <id></id>
 <name></name>
 <description></description>
 <url></url>
 <boxes>
  <box>
   <id></id>
   <name></name>
   <type></type>
   <column></column>
   <position></position>
   <hidden></hidden>
   <created></created>
   <updated></updated>
   <assets>
    <asset>
     <id></id>
     <name></name>
     <type></type>
     <description></description>
     <url/>
     <owner>
      <id></id>
      <email></email>
      <first_name></first_name>
      <last_name></last_name>
     </owner>
     <map_id></map_id>
     <position></position>
     <created></created>
     <updated></updated>
    </asset>
   </assets>
  </box>
 </boxes>
</page>

1 个答案:

答案 0 :(得分:1)

我通过复制你在问题中提供的内容并输入一些ID来编写一个xml文件。

<pages>
    <page>
     <id>1</id>
     <name></name>
     <description>&lt;a href=&quot;http://google.com&quot; target=&quot;_self&quot;&gt;LINK&lt;/a&gt;</description>
     <boxes>
      <box>
      </box>
     </boxes>
    </page>
    <page>
     <id>2</id>
     <name></name>
     <description>&lt;a href=&quot;http://google.com&quot; target=&quot;_self&quot;&gt;LINK&lt;/a&gt;</description>
     <boxes>
      <box>
      </box>
     </boxes>
    </page><page>
     <id>3</id>
     <name></name>
     <description>&lt;a href=&quot;http://google.com&quot; target=&quot;_self&quot;&gt;LINK&lt;/a&gt;</description>
     <boxes>
      <box>
      </box>
     </boxes>
    </page>
</pages>

此代码揭示了ID和描述。

>>> from lxml import etree
>>> tree = etree.parse('temp.xml')

>>> for page in tree.xpath('.//page'):
...     page.xpath('id')[0].text, page.xpath('description')[0].text
... 
('1', '<a href="http://google.com" target="_self">LINK</a>')
('2', '<a href="http://google.com" target="_self">LINK</a>')
('3', '<a href="http://google.com" target="_self">LINK</a>')