File size: 3,375 Bytes
0dde60e |
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 |
import requests
from bs4 import BeautifulSoup
# URL du sitemap principal
sitemap_url = "https://falasteenifoodie.com/sitemap_index.xml"
def get_raw_sitemap(url):
"""Fonction pour obtenir le contenu brut du sitemap principal avec User-Agent"""
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
}
try:
response = requests.get(url, headers=headers)
response.raise_for_status() # Vérifier que la requête a réussi (code 200)
return response.content
except requests.exceptions.RequestException as e:
print(f"Erreur lors de la récupération du sitemap {url}: {e}")
return None
# Extraire le contenu brut du sitemap principal
sitemap_content = get_raw_sitemap(sitemap_url)
if sitemap_content:
soup = BeautifulSoup(sitemap_content, "lxml-xml")
# Afficher les premières lignes du sitemap pour inspecter sa structure
print(soup.prettify()[:500]) # Afficher les 500 premiers caractères pour voir la structure
# Extraire toutes les URLs (loc) dans le sitemap
main_sitemap_urls = [loc.text for loc in soup.find_all("loc")]
print("URL du sitemap principal :", main_sitemap_urls)
else:
print("Impossible de récupérer le sitemap principal.")
import requests
from bs4 import BeautifulSoup
def get_urls_from_sitemap(url):
"""Fonction pour extraire toutes les URLs d'un sitemap donné avec User-Agent"""
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36"
}
try:
response = requests.get(url, headers=headers)
response.raise_for_status() # Vérifier que la requête a réussi (code 200)
soup = BeautifulSoup(response.content, "lxml-xml")
urls = [loc.text for loc in soup.find_all("loc")]
return urls
except requests.exceptions.RequestException as e:
print(f"Erreur lors de la récupération du sitemap {url}: {e}")
return []
# Liste des sitemaps extraits du sitemap principal
sitemaps = [
"https://falasteenifoodie.com/post-sitemap.xml",
"https://falasteenifoodie.com/post_tag-sitemap.xml",
"https://falasteenifoodie.com/author-sitemap.xml",
"https://falasteenifoodie.com/category-sitemap.xml"
]
# Dictionnaires pour stocker les URLs classées
posts_urls = []
categories_urls = []
# Extraire les URLs de chaque sitemap et les trier
for sitemap in sitemaps:
print(f"Extraction des URLs du sitemap: {sitemap}")
sitemap_urls = get_urls_from_sitemap(sitemap)
print(f"Nombre d'URLs extraites de {sitemap}: {len(sitemap_urls)}")
# Classer les URLs en posts ou categories
for url in sitemap_urls:
if "category" in url:
categories_urls.append(url) # Ajouter à la liste des catégories
else:
posts_urls.append(url) # Ajouter à la liste des posts
# Afficher les résultats
print(f"Total des URLs de posts: {len(posts_urls)}")
print(f"Total des URLs de catégories: {len(categories_urls)}")
# Afficher un échantillon des URLs
print("Exemple d'URLs de posts :", posts_urls[:5])
print("Exemple d'URLs de catégories :", categories_urls[:5])
|