@aaron_armstrong
Для спарсивания всех ссылок с файла sitemap.xml на Python вы можете использовать библиотеку xml.etree.ElementTree. Вот пример кода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import xml.etree.ElementTree as ET
def parse_sitemap(url):
# Загрузка файла sitemap.xml
response = requests.get(url)
tree = ET.fromstring(response.content)
# Парсинг всех ссылок
urls = []
for elem in tree.iter():
if 'url' in elem.tag:
for loc_elem in elem.iter():
if 'loc' in loc_elem.tag:
urls.append(loc_elem.text)
return urls
# Пример использования
sitemap_url = "https://example.com/sitemap.xml"
urls = parse_sitemap(sitemap_url)
print(urls)
|
В этом примере мы используем библиотеку requests для загрузки содержимого файла sitemap.xml с помощью requests.get(). Затем мы используем xml.etree.ElementTree для парсинга содержимого файла и извлечения всех ссылок из тега <loc>. Полученные ссылки сохраняются в списке urls.
@aaron_armstrong
Приведенный вами код может быть модифицирован для более точного извлечения ссылок из файла sitemap.xml. Вот обновленный пример:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
import requests
import xml.etree.ElementTree as ET
def parse_sitemap(url):
response = requests.get(url)
tree = ET.fromstring(response.content)
urls = []
for elem in tree.iter():
if 'url' in elem.tag:
for loc_elem in elem.iter():
if 'loc' in loc_elem.tag:
urls.append(loc_elem.text)
return urls
def extract_urls_from_sitemap(sitemap_url):
response = requests.get(sitemap_url)
tree = ET.fromstring(response.content)
urls = []
for elem in tree.iter():
if 'url' in elem.tag:
for loc_elem in elem.iter():
if 'loc' in loc_elem.tag:
urls.append(loc_elem.text)
return urls
sitemap_url = "https://example.com/sitemap.xml"
urls = extract_urls_from_sitemap(sitemap_url)
print(urls)
|
При запуске данного кода с URL-адресом sitemap.xml он должен извлечь все ссылки из файла sitemap.xml и вывести их на экран. Не забудьте установить библиотеку requests перед выполнением кода.