代码之家  ›  专栏  ›  技术社区  ›  Laveena

使用Python的href链接递归下载XML页面

  •  0
  • Laveena  · 技术社区  · 5 年前

    我有一个带有href链接的XML页面,该链接将我引导到下一个页面,而最后一个XML页面没有href元素。我需要递归地下载所有XML,并搜索相关的Python代码,以帮助我快速执行此任务。

    0 回复  |  直到 5 年前
        1
  •  0
  •   Laveena    5 年前

    import xml.etree.ElementTree as ET
    import os
    import requests
    from requests.auth import HTTPBasicAuth
    
    def iterate_xml_automate(link):
    #Parent page parsing
    all_href = []
    all_href.append(link)
    tree = ET.fromstring(requests.get(link,
                         auth= HTTPBasicAuth('login', 'Password')).text.encode('utf-8'))   # Parser object
    #accessing href component from the XML tree
    href = [link.attrib['href'] for link in tree.iter('link')]
    all_href.append(href) 
    #Run the while loop till you find a href element in the successive xml file
    while (len(href)!= 0):
        tree_1 = ET.fromstring(requests.get(str(href[0]),
                                          auth=HTTPBasicAuth('login', 'Password')).text.encode('utf-8'))
        #Update href for accessing next xml link
        href = [link.attrib['href'] for link in tree_1.iter('link')]
        all_href.appned(href)
    
    #Returns all the href from subsequent pages
    return href