<p>见下文</p>
<pre><code>import requests
import xml.etree.ElementTree as ET
import pandas as pd
r = requests.get('https://raw.githubusercontent.com/dgs2021/golfdeals/main/35386_3864840_mp_delta.xml')
attrb_fields = {'manufacturer_name': 'manufacturer','name':'name','part_number':'part_number'}
sub_elements = {'retail':'retail','product':'product'}
root = ET.fromstring(r.content)
data = []
for p in root.findall('product'):
entry = {v:p.attrib.get(k,'NA') for k,v in attrb_fields.items()}
for k,v in sub_elements.items():
e = p.find(f'.//{v}')
entry[k] = e.text if e is not None else 'NA'
data.append(entry)
columns = list(attrb_fields.values()) + list(sub_elements.values())
df = pd.DataFrame(data,columns= columns)
print(df)
</code></pre>
<p>输出</p>
<pre><code> manufacturer ... product
0 Champ Golf ... https://click.linksynergy.com/link?id=83wh4zNK...
1 Stinger Tees ... https://click.linksynergy.com/link?id=83wh4zNK...
2 Vegas Golf ... https://click.linksynergy.com/link?id=83wh4zNK...
3 Ray Cook Golf ... https://click.linksynergy.com/link?id=83wh4zNK...
4 Rock Bottom Golf ... https://click.linksynergy.com/link?id=83wh4zNK...
... ... ... ...
4100 Callaway Golf ... https://click.linksynergy.com/link?id=83wh4zNK...
4101 Cobra Golf ... https://click.linksynergy.com/link?id=83wh4zNK...
4102 Odyssey Golf ... https://click.linksynergy.com/link?id=83wh4zNK...
4103 TaylorMade Golf ... https://click.linksynergy.com/link?id=83wh4zNK...
4104 Titleist Golf ... https://click.linksynergy.com/link?id=83wh4zNK...
[4105 rows x 5 columns]
</code></pre>