Bonjour a tous,

cela est un exercice de pratique avec python qui consiste à trouver des chaînes de caractéres spécifique (qui contient des caractéres spéciaux).
j'ai utilisé plusieurs modules de python.

dans ce code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
import pickle
import re
import requests
from bs4 import BeautifulSoup
 
#pattern = r"(\+\d\s*\d(?:-?\d)+)([\w.-]+@[\w.-]+(?:\.[\w.-]+)*\.[a-z]{2,6})"
 
 
def dow_web(url):
    URL = url
    page = requests.get(URL)
    spe = BeautifulSoup(page.content, 'html.parser')
    elems = spe.find_all('loc') # récuperer le contenu de la balise loc
    for nb in elems:
        tag = nb.text
        page = requests.get(tag)
        sp = BeautifulSoup(page.content, 'html.parser') #récupérer le contenur de HTML 
        reg = r"([\w.-]+@[\w.-]+(?:\.[\w.-]+)*\.[a-z]{2,6})" # regex pour récupérer les emails
        mat = re.findall(reg, sp)
        return mat
 
dow_web("https://www.monsiteweb.com/sitemap.xml")

mon regex si je lui passe une variable avec du string dedant il me trouve les emails.

Mon erreur est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
Traceback (most recent call last):
File "C:/crawler.py", line 24, in dow_web  matches = re.findall(pattern, soup)
 
File "C:\Users\AdataY\AppData\Local\Programs\Python\Python38\lib\re.py", line 241, in findall return _compile(pattern, flags).findall(string)
 
TypeError: expected string or bytes-like object