@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 перед выполнением кода.