Я новичок, работающий над программой, которая может очищать электронные письма с данного сайта. Код выглядит следующим образом:
import requests, bs4, re
print('Fetching Website...')
res = requests.get('https://examplewebsite.com')
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
type(soup)
my_list = []
for link in soup.find_all('a'):
my_list.append(link.get('href'))
emailregex = re.compile(r'''(
[a-zA-Z0-9._%+-:]+
@
[a-zA-Z0-9.-]+
\.[a-zA-Z]{2,4}
)''', re.VERBOSE)
newlist = list(filter(emailregex.search, my_list))
print(newlist)
print('---Done---')
Однако, когда я запускаю код, я получаю сообщение об ошибке: «TypeError: ожидаемая строка или байтовоподобный объект». Я обнаружил, что если я сделаю:
newlist = list(filter(emailregex.search, str(my_list)))
print(newlist)
Ошибка исчезнет go, но мой «новый список» не содержит результатов. Я подтвердил, что «my_list» возвращает список ожидаемых результатов. Я обнаружил, что если я распечатываю «my_list» и вставляю его содержимое в новый файл, где я добавляю его в список, запускаю тот же код, он работает просто отлично, поэтому я не верю, что это проблема с Regex. Я думаю, что это может быть что-то с типом данных в "my_list"? У меня нет хороших идей, поэтому любая помощь будет признательна.
Спасибо